码迷,mamicode.com
首页 > 其他好文 > 详细

添加两个数字(Leetcode)

时间:2017-09-27 13:10:10      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:solution   etc   ini   lin   init   log   nbsp   ddt   public   

问题:

给定两个非空的链表,表示两个非负整数。数字以相反的顺序存储,每个节点包含一个数字。添加两个数字并将其作为链表返回。

您可以假设两个数字不包含任何前导零,除了数字0本身。

输入:(2 - > 4 - > 3)+(5 - > 6 - > 4)
输出: 7 - > 0 - > 8

 

代码:

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) { val = x; }
 7  * }
 8  */
 9 class Solution {
10     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
11         
12         ListNode p=l1;
13         ListNode q=l2;
14         ListNode l=new ListNode(0);
15         ListNode curr=l;
16         
17         int carry=0;
18         
19         while(p!=null||q!=null){
20             
21             int x=(p!=null)?p.val:0;
22             int y=(q!=null)?q.val:0;
23             
24             int z=carry+x+y;
25             
26             carry=z/10;
27             curr.next=new ListNode(z%10);
28             curr=curr.next;
29             
30             if(p!=null){
31                 
32                 p=p.next;
33                 
34             }
35             
36             if(q!=null){
37                 
38                 q=q.next;
39                 
40             }
41             
42         }
43         
44         if(carry>0){
45             
46             curr.next=new ListNode(carry);
47             
48         }
49         
50         return l.next;
51 
52     }
53 }

 

添加两个数字(Leetcode)

标签:solution   etc   ini   lin   init   log   nbsp   ddt   public   

原文地址:http://www.cnblogs.com/xuzhiyuan/p/7601015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!