Leetcode: Add Two Numbers

来源:互联网 发布:网络被劫持怎么办 编辑:程序博客网 时间:2024/05/29 07:00

Add Two Numbers


You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8


解析:两个链表从头节点开始节点value依次相加,注意长度不对称的情况以及对进位的处理即可。


代码:


/** * 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) {        ListNode output = new ListNode(0);     ListNode curr = output;     int carry = 0;     while(l1!=null||l2!=null)     {         int i = l1==null?0:l1.val;         int j = l2==null?0:l2.val;         int k = (i + j + carry)%10;         carry = (i + j + carry)/10;         curr.next = new ListNode(k);         curr = curr.next;         if(l1!=null)l1 = l1.next;         if(l2!=null)l2 = l2.next;     }     if(carry>0)     {         System.out.println("carry: "+carry);      curr.next = new ListNode(carry);     }     return output.next;    }}


0 0
原创粉丝点击