题解
1.简单双指针
每次反转两个指针,然后prev和curr分别向后移一位,再反转
注意记录curr.next
var reverseList = function (head) {let curr = head, prev = nullwhile (curr) {const t = curr.nextcurr.next = prevprev = currcurr = t}return prev};
2.递归
可以将递归看作是栈
根据先进后出原则,将当前节点的下一个节点送入递归,可认为返回的是反转好的节点,
只要反转当前节点,将当前节点的下一个节点指向当前节点,当前节点的下一个节点置为NULL即可
var reverseList = function (head) {if (!head || !head.next) {return head}const node = reverseList(head.next)head.next.next = headhead.next = nullreturn node};
