面试题24. 反转链表

2020-03-26  本文已影响0人  寂灭天骄小童鞋

https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/submissions/

func reverseList(_ head: ListNode?) -> ListNode? {
    if head == nil || head?.next == nil {return head}
    var finallNode : ListNode? = nil
    var cur = head
    while cur != nil {
        //将cur的下一个节点暂存,以便后续恢复链表遍历
        let tmpNode = cur?.next
        //将当前节点的next指向finall
        cur?.next = finallNode
        //将finall指向新生成的cur.next链表
        finallNode = cur
        //重新回复cur原生链表,继续遍历
        cur = tmpNode
    }
    return finallNode
}

上一篇 下一篇

猜你喜欢

热点阅读