定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

    示例:
    输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL

    限制:
    0 <= 节点个数 <= 5000
    迭代双指针

    1. /**
    2. * Definition for singly-linked list.
    3. * function ListNode(val) {
    4. * this.val = val;
    5. * this.next = null;
    6. * }
    7. */
    8. /**
    9. * @param {ListNode} head
    10. * @return {ListNode}
    11. */
    12. var reverseList = function(head) {
    13. let cur = head
    14. let pre = null
    15. while(cur){
    16. const temp = cur.next //暂存后继节点 cur.next
    17. cur.next = pre // 修改 next 引用指向
    18. pre = cur // pre 暂存 cur
    19. cur = temp // cur 访问下一节点
    20. }
    21. return pre
    22. };