206. Reverse Linked List

2019-01-08  本文已影响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;
}
上一篇下一篇

猜你喜欢

热点阅读