美文网首页
单链表的反转

单链表的反转

作者: 梁森的简书 | 来源:发表于2021-01-30 23:38 被阅读0次
    /// 反转整个链表
        func reverse() {
            if isEmpty() == true {
                return
            }
            let node = reverseNode(curNode: head.next)
            print("\(node!.item ?? "")")
        }
        
        /// 反转某个节点
        private func reverseNode(curNode: Node?) -> Node? {
            if curNode?.next == nil {
                head.next = curNode
                return curNode
            }
            let preNode = reverseNode(curNode: curNode?.next)
            preNode?.next = curNode
            curNode?.next = nil
            return curNode
        }
    

    找到最后一个节点,并让头节点指向该节点,然后依次让之前的后一个节点指向其前一个节点

    demo地址:https://github.com/yangguanghei/studyDateStructure

    相关文章

      网友评论

          本文标题:单链表的反转

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