反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
思路
思路比较简单,具体如下
- cur.next = prev (当前节点的后继节点指向前驱节点)
- prev = cur (前驱节点指向当前节点)
- cur = cur.next (当前节点指向后继节点)
完整代码
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
let [cur,prev] = [head,null]
while(cur)
[cur.next,prev,cur] = [prev,cur,cur.next]
return prev
};
性能
时间复杂度:
空间复杂度: