zoukankan      html  css  js  c++  java
  • 2. Add Two Numbers

    一、题目

      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;
        }
    }
  • 相关阅读:
    @@IDENTITY 存储过程
    ASP.NET的Cookie和Session
    数据格式设置表达式
    DataTable类(MSDN)
    用静态变量代替appliction
    C cgi url 编码解码问题
    C#视频头操作
    c#网页抓取
    c语言字符串分隔
    CGI c 上传文件
  • 原文地址:https://www.cnblogs.com/skillking/p/9352885.html
Copyright © 2011-2022 走看看