原题链接:leetcode-cn.com/problems/re…
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
我们需要在遍历旧链表时,将节点1赋值给新链表,再将下一个节点2的next指向新链表中的节点1即可。
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @return {ListNode} */ var reverseList = function (head) { // 存储翻转后的链表节点 let reversedNode = null; // 存储原链表的节点 let originalNode = head; // 遍历原链表,完成遍历后退出 while (originalNode) { // 临时存储当前链表指向的下一个节点,、 const tempNode = originalNode.next; // 将原链表的指针指向翻转后的链表节点 originalNode.next = reversedNode; // 将原链表节点赋值给翻转后的链表节点 reversedNode = originalNode; // 将下一个节点赋值给原节点,继续循环实现遍历 originalNode = tempNode; } return reversedNode; }; 复制代码