给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

题解

遍历链表,保存当前节点后一位节点,把当前节点的后一位节点设置为新节点,新节点的后一位节点设置为当前节点

  1. /**
  2. * Definition for singly-linked list.
  3. * function ListNode(val, next) {
  4. * this.val = (val===undefined ? 0 : val)
  5. * this.next = (next===undefined ? null : next)
  6. * }
  7. */
  8. /**
  9. * @param {ListNode} head
  10. * @return {ListNode}
  11. */
  12. var reverseList = function(head) {
  13. let l = null
  14. let p = head
  15. while(p) {
  16. const t = p.next
  17. p.next = l
  18. l = p
  19. p = t
  20. }
  21. return l
  22. };

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-linked-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。