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

        public class ListNode
        {
            public int val;
            public ListNode next;
            public ListNode(int x) { val = x; }
        }
    
        public class Solution
        {
            public ListNode AddTwoNumbers(ListNode l1, ListNode l2)
            {
                ListNode lnResult = new ListNode(0);
                ListNode currentNode = lnResult;
                ListNode pre = null;
                int carry = 0;
                while (l1 != null && l2 != null)
                {
                    currentNode.val = (l1.val + l2.val + carry) % 10;
                    carry = (l1.val + l2.val + carry) / 10;
                    pre = currentNode;
                    currentNode = new ListNode(0);
                    pre.next = currentNode;
                    l1 = l1.next;
                    l2 = l2.next;
                }
                currentNode = AddWithCarry(l1, l2, carry);
                pre.next = currentNode;
    
                return lnResult;
            }
    
            public ListNode AddWithCarry(ListNode l1, ListNode l2, int carry)
            {
                ListNode cur = null;
                if (l1 == null && l2 == null)
                {
                    if (carry != 0)
                    {
                        cur = new ListNode(0);
                        cur.val = carry;
                        return cur;
                    }
                    return null;
                }
                if (l1 == null)
                {
                    return AddWithCarry(l2, l1, carry);
                }
                ListNode result = new ListNode(0);
                cur = result;
                ListNode pre = null;
                while (l1 != null)
                {
                    cur.val = (l1.val + carry) % 10;
                    carry = (l1.val + carry) / 10;
                    pre = cur;
                    cur = new ListNode(carry);
                    pre.next = cur;
                    l1 = l1.next;
                }
                if (pre.next.val == 0)
                {
                    pre.next = null;
                }
                return result;
            }
        }
  • 相关阅读:
    Linux之cd、pwd、mkdir、rmdir
    Linux之目录结构配置
    Linux之chgrp
    Linux之chown
    Linux之chmod
    Linux之用户组、文件权限详解
    Linux命令之shutdown
    Linux命令之man
    Git-.gitignore配置
    Linux内核移植到JZ2440
  • 原文地址:https://www.cnblogs.com/pengdotnet/p/Add-Two-Numbers.html
Copyright © 2011-2022 走看看