美文网首页
2 Add Two Numbers

2 Add Two Numbers

作者: young_dreamer | 来源:发表于2016-06-23 21:14 被阅读7次
    • 题目描述:
      给两个数字组成的链表,计算它们从低位到高位的和,最后输出一个和的链表头结点
      Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
      Output: 7 -> 0 -> 8
    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            int carry =0;
            ListNode newHead = new ListNode(0);
            ListNode p1 = l1, p2 = l2, p3=newHead;
     
            while(p1 != null || p2 != null){
                if(p1 != null){
                    carry += p1.val;
                    p1 = p1.next;
                }
     
                if(p2 != null){
                    carry += p2.val;
                    p2 = p2.next;
                }
     
                p3.next = new ListNode(carry%10);
                p3 = p3.next;
                carry /= 10;
            }
     // 最后高位判定加一
            if(carry==1) 
                p3.next=new ListNode(1);
     
            return newHead.next;
        }
    }
    

    相关文章

      网友评论

          本文标题:2 Add Two Numbers

          本文链接:https://www.haomeiwen.com/subject/whkodttx.html