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;
}