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

2. Add Two Numbers

时间:2018-07-23 11:13:05      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:ret   efi   ima   nbsp   amp   while 循环   http   链表   记录   

一、题目

  1、审题:

  技术分享图片

  2、题意:

  两个非空链表,加法运算,有进位的

 

二、解答:

  1、分析:

  用 while 循环进行判断,同时用标志 sign 记录每一次进位。注意两个链表可能不等长。

/**
 * 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) {
        int sign = 0, sum = 0;
        ListNode result = new ListNode(0);  // 头结点
        ListNode head = result;
        while(l1 != null && l2 != null) {
            sum = l1.val + l2.val + sign;
            sign = sum / 10;
            result.next = new ListNode(sum%10);
            result = result.next;
            l1 = l1.next;
            l2 = l2.next;
        }

        while(l1 != null) {
            sum = l1.val + sign;
            sign = sum / 10;
            result.next = new ListNode(sum%10);
            result = result.next;
            l1 = l1.next;
        }
        while(l2 != null) {
            sum = l2.val + sign;
            sign = sum / 10;
            result.next = new ListNode(sum%10);
            result = result.next;
            l2 = l2.next;
        }
        if(sign > 0)  // 最后可能有进位
            result.next = new ListNode(sign);
        return head.next;
    }
}

 

2. Add Two Numbers

标签:ret   efi   ima   nbsp   amp   while 循环   http   链表   记录   

原文地址:https://www.cnblogs.com/skillking/p/9352885.html

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