leetcode24 链表节点反转

递归方法与非递归方法

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        #递归
        # if head ==None or head.next == None:
        #     return head

        # node1=head
        # node2=head.next

        # node1.next=node2.next

        # node2.next=node1

        # node1.next=self.swapPairs(node1.next)

        # return node2

        #另一种简洁的写法

        # if not head or not head.next:
        #     return head
        # newHead = head.next
        # head.next = self.swapPairs(newHead.next)
        # newHead.next = head
        # return newHead



        #非递归



        res=ListNode(0)
        res.next=head
        temp=res
        while temp.next!=None and temp.next.next!=None:
            node1=temp.next
            node2=temp.next.next
            temp.next=node2
            node1.next=node2.next
            node2.next=node1
            temp=node1

        return res.next

全部评论

相关推荐

昨天 15:29
青岛大学 Java
点赞 评论 收藏
分享
01-26 18:45
门头沟学院 Java
一天代码十万三:哥们实习再包一下吧,产出太笼统了,尽量体现业务
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务