欧美三区_成人在线免费观看视频_欧美极品少妇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)論
主站蜘蛛池模板: 久久伊99综合婷婷久久伊 | 欧美高潮| avbobo在线 | 欧美 日韩 中文字幕 | 日本成日本片人免费 | 欧美日韩国产精品自在自线 | 99久久99热久久精品免费看 | 超级碰碰碰视频视频在线视频 | 欧美一级毛片欧美毛片视频 | 四月婷婷七月婷婷综合 | 国产午夜视频 | 日本一区免费在线观看 | 99热这里都是国产精品 | 久久一区二区视频 | 国产成人微拍精品 | 中文在线免费观看 | 亚洲免费一区 | 99久久99| 激情网五月 | 日本久久精品视频 | 中文字幕在线播放 | 欧美一级一毛片 | 91xoxo| 精品一区视频 | 日本不卡在线一区二区三区视频 | 五月婷婷综合在线视频 | 久久99精品久久久久久国产越南 | 国产大陆精品另类xxxx | 久久久国产精品 | 中文字幕一区在线观看视频 | a视频在线播放 | 国产免费黄色网址 | 久色视频在线观看 | 奇米777视频国产 | 日韩中文字幕在线观看视频 | 一级aaaaaa毛片免费 | 亚洲免费福利 | 欧美区在线 | 亚洲成a人v在线观看 | 久久综合色播 | 青青草在线免费视频 |