欧美三区_成人在线免费观看视频_欧美极品少妇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)論
主站蜘蛛池模板: 日韩在线观看中文字幕 | 日韩在线视频在线观看 | 天天曰天天射 | 日本高清视频网址 | 奇米777四色影视在线看 | 久久久久久久免费看 | 伊人激情网 | 牛票票全部晒票 | 欧美精品一区在线发布 | 91精品欧美成人 | 亚洲韩精品欧美一区二区三区 | 亚洲午夜精品视频 | 五月婷婷狠狠干 | 91影院 | 99精品在线观看视频 | 精品一区二区免费视频 | 免费a一级毛片在线播放 | 欧美色黄视频 | 波多野结衣全部系列在线观看 | 97超级碰碰碰视频在线视频观看 | 亚洲成人精品久久久 | 欧美a视频| 亚洲资源在线视频 | 国产香港一级毛片在线看 | 奇米影视在线 | 成人免费网站www网站高清 | 亚洲精品久久久久久中文字幕小说 | 黄色在线观看 | 九九热精品在线视频 | 成人 在线| 开操网| 欧美搞黄视频 | 日韩欧美日本 | 性视频久久 | 久久精品2| 亚洲欧美精品综合中文字幕 | 奇米中文字幕 | av在线一区二区三区 | 成人久久久 | 日本精品久久无码影院 | 91看片淫黄大片在看 |