美文网首页
206. Reverse Linked List

206. Reverse Linked List

作者: 强布斯 | 来源:发表于2019-01-08 20:47 被阅读0次

    Reverse a singly linked list.
    Example:

    Input: 1->2->3->4->5->NULL
    Output: 5->4->3->2->1->NULL

    思路:利用一次循环,设置下一个节点的next指针为当前节点即可。在设置next指针过程中,为了hold住下一个节点需要设置个temp指针来保留值,有点像交换两个数时候使用的temp。

    代码:

    func reverseList(_ head: ListNode?) -> ListNode? {
                var nextNode = head?.next
                var currentNode = head
                currentNode?.next = nil;
                while (nextNode != nil) {
                    let tempNode = nextNode;
                    nextNode = nextNode?.next;
                    tempNode?.next =  currentNode;
                    currentNode = tempNode;
                }
                return currentNode;
    }
    

    相关文章

      网友评论

          本文标题:206. Reverse Linked List

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