反转链表

    技术2025-08-21  19

    思路

    定义三个指针,每次 'p2.next重定向到p1' 后三个指针分别后移一个,因为p3只是用来后移p2的,所以当p2.next==nil时主流程结束。最后修改head.next=nil,head=p2。

    图示

    (摘自:https://www.jianshu.com/p/f7534f8d7bf2)

     

     

     

     

    伪代码

    func ReverseLinkedList(head *Node) { p1, p2, p3 := head, head.next, head.next.next for { if p2.next == nil { break } p2.next = p1 p1 = p2 p2 = p3 p3 = p3.next } head.next = nil head = p2 }

     

    Processed: 0.012, SQL: 10