定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
题解:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
// let prev = null, curr = head //定义两个指针,一个是前指针,一个是当前指针
// while (curr) {//当前指针不为空的时候
// const next = curr.next //定义常量next,赋值为当前指针的下一个节点
// curr.next = prev //把当前指针的下一个节点赋值为prev前指针,即null
// prev = curr //给前指针赋值为当前指针,即head
// curr = next //给当前指针赋值为常量next,即赋值为当前指针的一下个节点
// }
// return prev
let cur = head
let arr = []
while(cur){
arr.push(cur.val)
cur = cur.next
}
cur = head
for(let i=arr.length-1;i>=0;i--){
cur.val = arr[i]
cur = cur.next
}
return head
};
链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof