美文网首页
剑指 Offer II 024. 反转链表

剑指 Offer II 024. 反转链表

作者: 邦_ | 来源:发表于2022-04-24 09:01 被阅读0次

 func reverseList(_ head: ListNode?) -> ListNode? {
        if head == nil {
            return nil
        }
        var oldHead = head
        var endHead : ListNode? = nil
        while oldHead != nil {
         //先保存下一个节点
           let temp = oldHead?.next
           //把下一个节点指向前一个节点
            oldHead?.next = endNode
            //当前节点赋值
            endNode = oldHead
            //保存的节点重置原来的头结点,让可以继续往下走
            oldHead = temp
        }
        return endHead

    }






 func reverseList(_ head: ListNode?) -> ListNode? {

        if head == nil || head?.next == nil {
            return head
        }      
        var ans : ListNode? = nil
        //用来遍历链表
        var oldNode = head
        while true {
            let temp = oldNode
            //指针后移
            oldNode = oldNode?.next
            temp?.next = ans
            //获取组装后的
            ans = temp
            if oldNode == nil {
                return ans
            }
        }
                
    }

相关文章

网友评论

      本文标题:剑指 Offer II 024. 反转链表

      本文链接:https://www.haomeiwen.com/subject/iwhqertx.html