zoukankan      html  css  js  c++  java
  • 添加两个数字(Leetcode)

    问题:

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

    您可以假设两个数字不包含任何前导零,除了数字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 }
  • 相关阅读:
    函数进阶-生成器
    函数进阶-列表生成式
    闭包
    命名空间
    内置方法
    函数
    squid清除缓存
    subprocess实现管道
    Python统计脚本行数(fileinput)
    fabric note
  • 原文地址:https://www.cnblogs.com/xuzhiyuan/p/7601015.html
Copyright © 2011-2022 走看看