欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python 兩數(shù)相加 Add Two Numbers Leetcode

系統(tǒng) 1781 0

Python 兩數(shù)相加 Leetcode No.2

Python 兩數(shù)相加 Add Two Numbers Leetcode No.2_第1張圖片
思路很簡(jiǎn)單,模擬小學(xué)加法運(yùn)算就好了,因?yàn)槭悄嫘虻模^指針指向的那個(gè)其實(shí)就是個(gè)位,往后加就完事,但是唯一需要注意的是,最高位可能有進(jìn)位。(屬于代碼練習(xí)題)
ps:還有人說先把數(shù)全部取出來,用計(jì)算機(jī)加法算完,再建立鏈表連接起來,乍一看有點(diǎn)投機(jī)取巧好像可行的樣子,但是我們要考慮計(jì)算和的時(shí)候會(huì)溢出。
還有人考慮直接在原來的鏈表上改數(shù)字,多一位的話,就再加一個(gè)鏈表,首先不知道leetcode允不允許改數(shù)字,畢竟這種題目也是考察你的鏈表能力,其次就算可以改,也沒那個(gè)必要,畢竟就算少個(gè)幾百個(gè)節(jié)點(diǎn),問題也不大就是了。

            
              
                # Definition for singly-linked list.
              
              
                # class ListNode(object):
              
              
                #     def __init__(self, x):
              
              
                #         self.val = x
              
              
                #         self.next = None
              
              
                class
              
              
                Solution
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                addTwoNumbers
              
              
                (
              
              self
              
                ,
              
               l1
              
                ,
              
               l2
              
                )
              
              
                :
              
              
                """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
              
              
                #進(jìn)位
              
              
        add 
              
                =
              
              
                0
              
              
                #這是兩個(gè)頭節(jié)點(diǎn)
              
              
        l3 
              
                =
              
               l4 
              
                =
              
               ListNode
              
                (
              
              
                0
              
              
                )
              
              
                while
              
              
                True
              
              
                :
              
              
                #算節(jié)點(diǎn)的和  
              
              
                if
              
               l1 
              
                or
              
               l2
              
                :
              
              
                if
              
               l1
              
                :
              
              
                sum
              
              
                =
              
              l1
              
                .
              
              val 
              
                +
              
               add
                    
              
                if
              
               l2
              
                :
              
              
                sum
              
              
                +=
              
               l2
              
                .
              
              val
                
              
                elif
              
               l2
              
                :
              
              
                sum
              
              
                =
              
               l2
              
                .
              
              val 
              
                +
              
              add
                    
              
                if
              
               l1
              
                :
              
              
                sum
              
              
                +=
              
              l1
              
                .
              
              val
            
              
                else
              
              
                :
              
              
                sum
              
              
                =
              
               add
            add 
              
                =
              
              
                0
              
              
                #判斷是否給add賦值
              
              
                if
              
              
                sum
              
              
                //
              
              
                10
              
              
                >
              
              
                0
              
              
                :
              
              
                add 
              
                =
              
              
                1
              
              
                sum
              
              
                %=
              
              
                10
              
              
                #為新節(jié)點(diǎn)賦值
              
              
            l3
              
                .
              
              val 
              
                =
              
              
                sum
              
              
            
            l1 
              
                =
              
               l1
              
                .
              
              
                next
              
              
                if
              
               l1 
              
                else
              
               l1
            l2 
              
                =
              
               l2
              
                .
              
              
                next
              
              
                if
              
               l2 
              
                else
              
               l2
            
              
                #創(chuàng)建新的鏈表
              
              
                if
              
               l1 
              
                or
              
               l2 
              
                or
              
               add
              
                :
              
              
                l3
              
                .
              
              
                next
              
              
                =
              
               ListNode
              
                (
              
              
                0
              
              
                )
              
              
                l3 
              
                =
              
               l3
              
                .
              
              
                next
              
              
                else
              
              
                :
              
              
                break
              
              
                return
              
               l4

            
          

ps:分享很多國(guó)外人寫的代碼,就感覺臥槽,還可以這么寫,思路大家都一樣,寫法會(huì)有很多不同哦

            
              
                #第一個(gè)老外寫的,用了str
              
              
                class
              
              
                Solution
              
              
                :
              
              
                def
              
              
                addTwoNumbers
              
              
                (
              
              self
              
                ,
              
               l1
              
                ,
              
               l2
              
                )
              
              
                :
              
              
                """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
              
              
        str_l1
              
                ,
              
               str_l2 
              
                =
              
              
                ''
              
              
                ,
              
              
                ''
              
              
                while
              
               l1
              
                :
              
                          
            str_l1 
              
                +=
              
              
                str
              
              
                (
              
              l1
              
                .
              
              val
              
                )
              
              
            l1 
              
                =
              
               l1
              
                .
              
              
                next
              
              
                while
              
               l2
              
                :
              
                          
            str_l2 
              
                +=
              
              
                str
              
              
                (
              
              l2
              
                .
              
              val
              
                )
              
              
            l2 
              
                =
              
               l2
              
                .
              
              
                next
              
              
        int_l1 
              
                =
              
              
                int
              
              
                (
              
              str_l1
              
                [
              
              
                :
              
              
                :
              
              
                -
              
              
                1
              
              
                ]
              
              
                )
              
              
        int_l2 
              
                =
              
              
                int
              
              
                (
              
              str_l2
              
                [
              
              
                :
              
              
                :
              
              
                -
              
              
                1
              
              
                ]
              
              
                )
              
              
                return
              
              
                list
              
              
                (
              
              
                map
              
              
                (
              
              
                int
              
              
                ,
              
              
                str
              
              
                (
              
              int_l1 
              
                +
              
               int_l2
              
                )
              
              
                [
              
              
                :
              
              
                :
              
              
                -
              
              
                1
              
              
                ]
              
              
                )
              
              
                )
              
            
          
            
              
                #第二個(gè)老外寫的,用了divmod,有點(diǎn)意思哈
              
              
                # Definition for singly-linked list.
              
              
                # class ListNode(object):
              
              
                #     def __init__(self, x):
              
              
                #         self.val = x
              
              
                #         self.next = None
              
              
                class
              
              
                Solution
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                addTwoNumbers
              
              
                (
              
              self
              
                ,
              
               l1
              
                ,
              
               l2
              
                )
              
              
                :
              
              
                """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
              
              
        result 
              
                =
              
               ListNode
              
                (
              
              
                0
              
              
                )
              
              
        result_tail 
              
                =
              
               result
        carry 
              
                =
              
              
                0
              
              
                while
              
               l1 
              
                or
              
               l2 
              
                or
              
               carry
              
                :
              
                          
            val1  
              
                =
              
              
                (
              
              l1
              
                .
              
              val 
              
                if
              
               l1 
              
                else
              
              
                0
              
              
                )
              
              
            val2  
              
                =
              
              
                (
              
              l2
              
                .
              
              val 
              
                if
              
               l2 
              
                else
              
              
                0
              
              
                )
              
              
            carry
              
                ,
              
               out 
              
                =
              
              
                divmod
              
              
                (
              
              val1
              
                +
              
              val2 
              
                +
              
               carry
              
                ,
              
              
                10
              
              
                )
              
                  
                      
            result_tail
              
                .
              
              
                next
              
              
                =
              
               ListNode
              
                (
              
              out
              
                )
              
              
            result_tail 
              
                =
              
               result_tail
              
                .
              
              
                next
              
                                    
            
            l1 
              
                =
              
              
                (
              
              l1
              
                .
              
              
                next
              
              
                if
              
               l1 
              
                else
              
              
                None
              
              
                )
              
              
            l2 
              
                =
              
              
                (
              
              l2
              
                .
              
              
                next
              
              
                if
              
               l2 
              
                else
              
              
                None
              
              
                )
              
              
                return
              
               result
              
                .
              
              
                next
              
            
          
            
              
                #第三個(gè)老外用了遞歸寫的,可以看看
              
              
                # Definition for singly-linked list.
              
              
                class
              
              
                ListNode
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                ,
              
               x
              
                )
              
              
                :
              
              
        self
              
                .
              
              val 
              
                =
              
               x
        self
              
                .
              
              
                next
              
              
                =
              
              
                None
              
              
                def
              
              
                printList
              
              
                (
              
              nodeStart
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              nodeStart
              
                .
              
              val
              
                )
              
              
                if
              
               nodeStart
              
                .
              
              
                next
              
              
                ==
              
              
                None
              
              
                :
              
              
                return
              
              
                else
              
              
                :
              
              
        printList
              
                (
              
              nodeStart
              
                .
              
              
                next
              
              
                )
              
              
                class
              
              
                Solution
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                addTwoNumbers
              
              
                (
              
              self
              
                ,
              
               l1
              
                ,
              
               l2
              
                )
              
              
                :
              
              
                if
              
               l1 
              
                ==
              
              
                None
              
              
                :
              
              
                return
              
               l2
            
        
              
                if
              
               l2 
              
                ==
              
              
                None
              
              
                :
              
              
                return
              
               l1
            
        sval 
              
                =
              
               l1
              
                .
              
              val 
              
                +
              
               l2
              
                .
              
              val
        
              
                if
              
               sval 
              
                <
              
              
                10
              
              
                :
              
              
            ansNode 
              
                =
              
               ListNode
              
                (
              
              sval
              
                )
              
              
            ansNode
              
                .
              
              
                next
              
              
                =
              
               self
              
                .
              
              addTwoNumbers
              
                (
              
              l1
              
                .
              
              
                next
              
              
                ,
              
               l2
              
                .
              
              
                next
              
              
                )
              
              
                return
              
               ansNode
        
              
                else
              
              
                :
              
              
            rval 
              
                =
              
               l1
              
                .
              
              val 
              
                +
              
               l2
              
                .
              
              val
              
                -
              
              
                10
              
              
            ansNode 
              
                =
              
               ListNode
              
                (
              
              rval
              
                )
              
              
            ansNode
              
                .
              
              
                next
              
              
                =
              
               self
              
                .
              
              addTwoNumbers
              
                (
              
              ListNode
              
                (
              
              
                1
              
              
                )
              
              
                ,
              
               self
              
                .
              
              addTwoNumbers
              
                (
              
              l1
              
                .
              
              
                next
              
              
                ,
              
               l2
              
                .
              
              
                next
              
              
                )
              
              
                )
              
              
                return
              
               ansNode


            
          

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久成 | 日本黄色a视频 | 中文字幕在线观看av | 日韩精品免费观看 | 亚洲综合在线视频 | 精品视频在线观看视频免费视频 | 欧美激情一区二区三区中文字幕 | 国产视频资源在线观看 | 亚洲一区二区三区在线看 | 一个看片免费视频www | 欧美一区二区三区在线观看视频 | 91免费在线看 | 欧美桃色视频 | 午夜特级毛片 | 污视频在线免费 | 91美女在线观看 | 在线色 | 国产精品高清在线观看 | 黄色一级在线视频 | 亚洲日本中文字幕天天更新 | 国产精品乱码人人做人人爱 | 日韩一二三 | 成人在线一区二区 | 视频二区 | 亚洲国产精品无码AV久久久 | 一二区视频 | 欧美八区 | 色悠久久久久综合网伊人男男 | 日韩欧美亚洲 | www.99色| 九色国产 | 久久亚洲国产成人亚 | 久久女 | 国产精品视频二区不卡 | 日产精品卡二卡三卡四卡乱码视频 | 亚洲午夜av久久乱码 | 玖玖玖影院| 看了让人下面流水的视频 | 欧美精品综合在线 | 色性综合 | 五月天亚洲综合 |