您的位置:首页 > 其它

链表求和

2017-05-23 14:59 120 查看
样例

给出 6->1->7 + 2->9->5。即,617 + 295。

返回 9->1->2。即,912 。

/**

* 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 addLists2(ListNode l1, ListNode l2) {

l1 = ReverseList(l1);

l2 = ReverseList(l2);

int tmp = 0;

ListNode node = new ListNode(0);

ListNode p = node;

while (tmp != 0 || l1 != null || l2 != null) {

if (l1 != null) {

tmp += l1.val;

l1 = l1.next;

}

if (l2 != null) {

tmp += l2.val;

l2 = l2.next;

}

p.next = new ListNode(tmp % 10);

p = p.next;

tmp = tmp / 10;

}

return ReverseList(node.next);

}

public static ListNode ReverseList(ListNode head) {
if(head == null)
return null;
ListNode p = head;
ListNode q = p.next;
p.next = null;
while(q != null) {
head = q.next;
q.next = p;
p = q;
q = head;
}
head = p;
return head;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: