题解 | #重排链表#

重排链表

https://www.nowcoder.com/practice/3d281dc0b3704347846a110bf561ef6b

from pickle import NEXT_BUFFER

class Solution:
    def reorderList(self, head):
		#Fast & Slow pointers
        slow, fast = head, head
        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next

        #if empty
        if not slow:
            return

        middle = slow.next
        slow.next = None

        #reverse middle to rev
        rev = None
        while middle:
            next_n = middle.next
            middle.next = rev
            rev = middle
            middle = next_n
        
        cur = head
        while rev:
            next_n = cur.next
            cur.next = rev
            rev = next_n
            cur = cur.next

全部评论

相关推荐

牛马人的牛马人生:太舒服了接接接
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务