leetcode刷题
程序员文章站
2022-03-09 10:21:12
...
题目描述:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
package op;
public class Solution {
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public void to(ListNode l) {
ListNode s=l;
String a="";
while(s!=null) {
a=a+s.val;
s=s.next;
}
StringBuffer buffer=new StringBuffer(a);
System.out.println(buffer.reverse());
}
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode res=new ListNode(0),resq=res;;
ListNode p=l1,q=l2;
int carry=0;
while(p!=null||q!=null) {
int i=(p!=null)?p.val:0;
int j=(q!=null)?q.val:0;
resq.val=(i+j+carry)%10;
carry=(i+j+carry)/10;
if(p!=null)
p=p.next;
if(q!=null)
q=q.next;
if(p!=null||q!=null) {
resq.next=new ListNode(0);
resq=resq.next;}
}
if(carry==1)
resq.next=new ListNode(1);
return res;
}
public static void main(String[] args) {
Solution s=new Solution();
// TODO Auto-generated method stub
Solution.ListNode l1=s.new ListNode(2);
l1.next=s.new ListNode(4);
l1.next.next=s.new ListNode(3);
Solution.ListNode l2=s.new ListNode(5);
l2.next=s.new ListNode(6);
// l2.next.next=s.new ListNode(4);
s.to(l1);
s.to(l2);
s.to(s.addTwoNumbers(l1, l2));
Solution.ListNode l3=s.new ListNode(9);
l3.next=s.new ListNode(9);
Solution.ListNode l4=s.new ListNode(1);
s.to(l3);
s.to(l4);
s.to(s.addTwoNumbers(l3, l4));
}
}
采用哑结点做法
ListNode res=new ListNode(0),resq=res;//采用哑结点
int carry=0;//进位
while(l1!=null||l2!=null||carry!=0) {
int i=(l1!=null)?l1.val:0;
int j=(l2!=null)?l2.val:0;
resq.next=new ListNode((i+j+carry)%10);
carry=(i+j+carry)/10;
if(l1!=null)l1=l1.next;
if(l2!=null)l2=l2.next;
resq=resq.next;
}
return res.next;
上一篇: 剑指offer 06:从尾到头打印单链表
下一篇: 2. 两数相加(C++)[中等]
推荐阅读
-
Word高手必备知识格式刷、页眉横线、双面打印快速操作
-
2019年高考全国一卷语文试卷真题及答案(附Word版下载)
-
2021年江苏高考数学真题及参考答案解析(新高考Ⅰ卷)
-
2020年新高考一卷语文高考试卷真题及答案解析(附Word版下载)
-
高考数学答案2021全国甲卷文科数学(完整版试卷真题及答案解析,可下载)
-
2019年高考全国二卷语文试卷真题及答案(附Word版下载)
-
2020年浙江卷语文高考试卷真题及答案解析(附Word版下载)
-
2020年全国三卷语文高考试卷真题及答案解析(附Word版下载)
-
2020年江苏卷语文高考试卷真题及答案解析(附Word版下载)
-
2019年高考天津卷语文试卷真题及答案(附Word版下载)