/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
/*
* @param l1: the first list
* @param l2: the second list
* @return: the sum list of l1 and l2
*/
public ListNode addLists(ListNode l1, ListNode l2) {
// write your code here
if(l1==null&&l2==null){
return null;
}
if(l1==null&&l2!=null){
return l2;
}
if(l1!=null&&l2==null){
return l1;
}
int count = 0;
ListNode head = null;
if(l1.val+l2.val+count>=10){
head = new ListNode(l1.val+l2.val-10);
count = 1;
}else{
head = new ListNode(l1.val+l2.val+count);
}
ListNode temp = head;
while(l1.next!=null&&l2.next!=null){
if(l1.next.val+l2.next.val+count>=10){
temp.next = new ListNode(l1.next.val+l2.next.val+count-10);
count=1;
}else{
temp.next = new ListNode(l1.next.val+l2.next.val+count);
count=0;
}
temp = temp.next;
l1 = l1.next;
l2 = l2.next;
}
//加入还没循环结束的链表元素
while(l1.next!=null){
if(l1.next.val+count>=10){
temp.next = new ListNode(l1.next.val+count-10);
count =1;
}else{
temp.next = new ListNode(l1.next.val+count);
count = 0;
}
temp = temp.next;
l1 = l1.next;
}
while(l2.next!=null){
if(l2.next.val+count>=10){
temp.next = new ListNode(l2.next.val+count-10);
count = 1;
}else{
temp.next = new ListNode(l2.next.val+count);
count = 0;
}
temp = temp.next;
l2 = l2.next;
}
if(count!=0){
temp.next = new ListNode(1);
}
return head;
}
}
LintCode167:链表求和
最新推荐文章于 2020-09-10 09:31:20 发布