Given the head of a singly linked list, reverse the list, and return the reversed list.
Example 1:
Input: head = [1,2,3,4,5] Output: [5,4,3,2,1]
Example 2:
Input: head = [1,2] Output: [2,1]
Example 3:
Input: head = [] Output: []
Constraints:
- The number of nodes in the list is the range
[0, 5000]. -5000 <= Node.val <= 5000
Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both?
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
| Language | Runtime | Memory | Submission Time |
|---|---|---|---|
| javascript | 72 ms | 34.2 MB | 2020/03/23 12:45 |
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
var preNode, curNode, nextNode;
if (!head) {
return null;
}
if(head.next === null) {
return head;
}
preNode = head, curNode = head.next;
head.next = null;
while(curNode.next) {
nextNode = curNode.next;
curNode.next = preNode;
preNode = curNode;
curNode = nextNode;
}
curNode.next = preNode;
return curNode;
};No notes

