国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode-C#-0002.兩數(shù)相加

這篇具有很好參考價值的文章主要介紹了LeetCode-C#-0002.兩數(shù)相加。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

0.聲明

該題目來源于LeetCode
如有侵權(quán),立馬刪除。
解法不唯一,如有新解法可一同討論。

1.題目

0002兩數(shù)相加
給你兩個非空的鏈表,表示兩個非負(fù)的整數(shù),它們每位數(shù)字都是按照逆序的方式存儲的,并且每個節(jié)點只能存儲一位數(shù)字。
請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。
你可以假設(shè)除了數(shù)字0之外,這兩個數(shù)都不會以0開頭。

示例 1:
輸入:l1 = [2,4,3], l2 = [5,6,4]
輸出:[7,0,8]
解釋:342 + 465 = 807

示例 2:
輸入:l1 = [0], l2 = [0]
輸出:[0]

示例 3:
輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]

提示:
每個鏈表中的節(jié)點數(shù)在范圍 [1, 100] 內(nèi)
0 <= Node.val <= 9
題目數(shù)據(jù)保證列表表示的數(shù)字不含前導(dǎo)零文章來源地址http://www.zghlxwxcb.cn/news/detail-480550.html

2.代碼

namespace LeetCode_0002兩數(shù)相加
{
    class Program
    {
        static void Main(string[] args)
        {
            var l1 = generateList(new int[] { 1, 5, 7 });
            var l2 = generateList(new int[] { 9, 9, 2, 9 });
            printList(l1);
            printList(l2);

            LeetCode_AddTwoNum latn = new LeetCode_AddTwoNum();
            var sum = latn.AddTwoNumbers(l1, l2);
            printList(sum);

            var sum1 = latn.AddTwoNumbers_1(l1, l2);
            printList(sum1);

            Console.ReadKey();
        }


        static ListNode generateList(int[] vals)
        {
            ListNode start = null;
            ListNode end = null;

            for (int i = 0; i < vals.Length; i++)
            {
                if (start == null)//開頭為null時
                {
                    start = new ListNode(vals[i]);
                    end = start;//移動指針
                }

                else
                {
                    end.next = new ListNode(vals[i]);
                    end = end.next;
                }
            }

            return start;
        }


        static void printList(ListNode l)
        {
            while (l != null)
            {
                Console.Write($"{l.val}, ");
                l = l.next;
            }
            Console.WriteLine("");
        }
    }


    class LeetCode_AddTwoNum
    {
        public ListNode AddTwoNumbers(ListNode l1, ListNode l2)
        {
            //定義一個節(jié)點用來存儲新鏈表的第一個節(jié)點
            ListNode firstNode = new ListNode(0);
            //定義一個循環(huán)的節(jié)點
            ListNode lastnode = firstNode;
            //進(jìn)位
            int val = 0;
            while (l1 != null || l2 != null || val != 0)
            {
                int num1, num2;
                if (l1 == null)
                    num1 = 0;
                else
                    num1 = l1.val;

                if (l2 == null)
                    num2 = 0;
                else
                    num2 = l2.val;

                int value = num1 + num2 + val;
                val = value / 10;
                value = value % 10;
                lastnode.next = new ListNode(value);
                lastnode = lastnode.next;

                if (l1 == null)
                    l1 = null;
                else
                    l1 = l1.next;

                if (l2 == null)
                    l2 = null;
                else
                    l2 = l2.next;
            }

            return firstNode.next;
        }


        public ListNode AddTwoNumbers_1(ListNode l1, ListNode l2)
        {
            ListNode head = null, tail = null;
            int carry = 0;
            while (l1 != null || l2 != null)
            {
                int n1 = l1 != null ? l1.val : 0;
                int n2 = l2 != null ? l2.val : 0;
                int sum = n1 + n2 + carry;
                if (head == null)
                {
                    head = tail = new ListNode(sum % 10);
                }
                else
                {
                    tail.next = new ListNode(sum % 10);
                    tail = tail.next;
                }
                carry = sum / 10;
                if (l1 != null)
                {
                    l1 = l1.next;
                }
                if (l2 != null)
                {
                    l2 = l2.next;
                }
            }
            if (carry > 0)
            {
                tail.next = new ListNode(carry);
            }
            return head;
        }
    }


    class ListNode
    {
        public int val;
        public ListNode next;
        public ListNode(int val = 0, ListNode next = null)
        {
            this.val = val;
            this.next = next;
        }
    }
}

到了這里,關(guān)于LeetCode-C#-0002.兩數(shù)相加的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • LeetCode | 兩數(shù)相加 C語言

    LeetCode | 兩數(shù)相加 C語言

    Problem: 2. 兩數(shù)相加 主要是一一相加和逆序的方式存儲 先說逆序儲存,看下圖 我們先聲明出指針p和指針q,還有指針head(主要用于return上而已),然后進(jìn)行一系列操作,之后,p = q,之后的操作就是對q進(jìn)行,至于p,只做一個動作,p = q 至于相加嘛!好說,將對應(yīng)的兩個數(shù)加起

    2024年02月22日
    瀏覽(20)
  • leetcode 2. 兩數(shù)相加(java)

    leetcode 2. 兩數(shù)相加(java)

    難度 - 中等 leetcode 2. 兩數(shù)相加 給你兩個 非空 的鏈表,表示兩個非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。

    2024年02月09日
    瀏覽(22)
  • LeetCode算法題---兩數(shù)相加(二)

    LeetCode算法題---兩數(shù)相加(二)

    給你兩個?非空 的鏈表,表示兩個非負(fù)的整數(shù)。它們每位數(shù)字都是按照?逆序?的方式存儲的,并且每個節(jié)點只能存儲?一位?數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0?開頭。 示例 1: ? 示例 2: 示例

    2024年02月09日
    瀏覽(15)
  • 【數(shù)據(jù)結(jié)構(gòu) | 鏈表】leetcode 2. 兩數(shù)相加

    【數(shù)據(jù)結(jié)構(gòu) | 鏈表】leetcode 2. 兩數(shù)相加

    個人主頁:兜里游客棉花糖 歡迎 點贊?? 收藏? 留言? 加關(guān)注??本文由 兜里游客棉花糖 原創(chuàng) 收錄于專欄【LeetCode】 原題鏈接:點擊直接跳轉(zhuǎn)到該題目 給你兩個 非空 的鏈表,表示兩個非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位

    2024年02月05日
    瀏覽(33)
  • LeetCode 算法 2.兩數(shù)相加(python版)

    LeetCode 算法 2.兩數(shù)相加(python版)

    給你兩個 非空 的鏈表,表示兩個非負(fù)的整數(shù)。 它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。

    2024年01月21日
    瀏覽(19)
  • leetcode 445. Add Two Numbers II(兩數(shù)相加)

    leetcode 445. Add Two Numbers II(兩數(shù)相加)

    用鏈表代表2個數(shù)字,這2個數(shù)字相加的和用鏈表返回。 最高位在鏈表的head. 思路: 1.鏈表逆序 數(shù)字相加是從低位到高位的,然而鏈表中的數(shù)字是從高位指向低位。 所以涉及到鏈表的逆序。 逆序之后只需從head到tail把兩個鏈表的數(shù)字相加,再用一個int表示進(jìn)位。 鏈表的逆序

    2024年02月16日
    瀏覽(26)
  • 2023/07/02_leetcode每日一題_2.兩數(shù)相加

    給你兩個 非空 的鏈表,表示兩個非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。 示例: 輸入:l1 = [9,9,9,9,9,9

    2024年02月11日
    瀏覽(21)
  • 【刷題筆記8.8】LeetCode題目:兩數(shù)之和

    【刷題筆記8.8】LeetCode題目:兩數(shù)之和

    給定一個整數(shù)數(shù)組 nums 和一個整數(shù)目標(biāo)值 target,請你在該數(shù)組中找出 和為目標(biāo)值 target 的那 兩個 整數(shù),并返回它們的數(shù)組下標(biāo)。 你可以假設(shè)每種輸入只會對應(yīng)一個答案。但是, 數(shù)組中同一個元素在答案里不能重復(fù)出現(xiàn) 。 你可以按任意順序返回答案。 解法1:使用HashMap對數(shù)

    2024年02月13日
    瀏覽(23)
  • 兩數(shù)相加問題

    兩數(shù)相加問題

    給你兩個 非空 的鏈表,表示兩個非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。 示例 1: 示例 2: 示例 3: 代

    2024年02月12日
    瀏覽(20)
  • 兩數(shù)相加

    給你兩個 非空 的鏈表,表示兩個非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。你可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。 輸入:l1 = [2,4,3], l2 = [5,6,4] 輸出

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包