Skip to content

Latest commit

 

History

History
49 lines (48 loc) · 1.19 KB

棕榈树.md

File metadata and controls

49 lines (48 loc) · 1.19 KB
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode tail1 = reverse(l1);
        ListNode tail2 = reverse(l2);
        ListNode head = new ListNode(0);
        ListNode res = head;
        int flag = 0;
        while(null!=tail1||null!=tail2){
            int sum = flag;
            if(null!=tail1){
                sum += tail1.val;
                tail1 = tail1.next;
            }
            if(null!=tail2){
                sum+=tail2.val;
                tail2 = tail2.next;
            }
            res.next = new ListNode(sum%10);
            res = res.next;
            flag = sum /10;
        }
        if(flag==1){
            res.next = new ListNode(flag);
            res = res.next;
        }
        return reverse(head.next);
    }
    
    public ListNode reverse(ListNode head){
        ListNode pre = null;
        while(null!=head){
            ListNode next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }
}