python 反转节点 Leetcode No.24

系统 1425 0

Swap nodes in pairs

python 反转节点 Leetcode No.24_第1张图片
大概题意就是两两相邻节点进行反转,但是如果是给的是5个节点的话,那么最后一个节点是不变的,注意这一点。

思路非常简单,但是主要考察的是代码实现能力。

            
              
                # Definition for singly-linked list.
              
              
                # class ListNode:
              
              
                #     def __init__(self, x):
              
              
                #         self.val = x
              
              
                #         self.next = None
              
              
                class
              
              
                Solution
              
              
                :
              
              
                def
              
              
                swapPairs
              
              
                (
              
              self
              
                ,
              
               head
              
                :
              
               ListNode
              
                )
              
              
                -
              
              
                >
              
               ListNode
              
                :
              
              
                #pre=self相当于创建了一个节点,让这个pre的next = head,可以换成下面的写法
              
              
                #phead =ListNode(None)
              
              
                #pre, pre.next = pHead, head
              
              
                #中间不变,return pHead.next
              
              
        pre
              
                ,
              
               pre
              
                .
              
              
                next
              
              
                =
              
               self
              
                ,
              
               head
        
              
                while
              
               pre
              
                .
              
              
                next
              
              
                and
              
               pre
              
                .
              
              
                next
              
              
                .
              
              
                next
              
              
                :
              
              
            a 
              
                =
              
               pre
              
                .
              
              
                next
              
              
            b 
              
                =
              
               a
              
                .
              
              
                next
              
              
                #Python连续赋值需要注意的点,是把右边的变量一次性赋值给左边的,只一句执行之后
              
              
                #self.next指向了2的这个节点,也就是新的头指针。
              
              
            pre
              
                .
              
              
                next
              
              
                ,
              
               b
              
                .
              
              
                next
              
              
                ,
              
               a
              
                .
              
              
                next
              
              
                =
              
               b
              
                ,
              
               a
              
                ,
              
               b
              
                .
              
              
                next
              
              
                #执行下面一段语句之后,pre.next再怎么改变也不影响self的指向。
              
              
            pre 
              
                =
              
               a 
        
              
                return
              
               self
              
                .
              
              
                next
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论