标签:leetcode
https://oj.leetcode.com/problems/add-two-numbers/
http://fisherlei.blogspot.com/2013/01/leetcode-add-two-numbers-solution.html
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { // 同时遍历两个list 直至两个list都为空 // 确定两个值 如果某listnode为空 默认为0 // 计算 newnode的值 和carry // 完成遍历,如果carry==true, 新增一个head ListNode toReturn = null; ListNode lastNode = null; int carry = 0; while (l1 != null || l2 != null) { int v1 = 0; if (l1 != null) { v1 = l1.val; l1 = l1.next; } int v2 = 0; if (l2 != null) { v2 = l2.val; l2 = l2.next; } int sum = v1 + v2 + carry; ListNode newNode = new ListNode(sum % 10); carry = sum >= 10 ? 1 : 0; if (lastNode != null) { lastNode.next = newNode; } lastNode = newNode; if (toReturn == null) toReturn = newNode; } if (carry == 1) { ListNode newNode = new ListNode(1); lastNode.next = newNode; } return toReturn; } }
标签:leetcode
原文地址:http://7371901.blog.51cto.com/7361901/1598393