一、使用循环
/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val = (val===undefined ? 0 : val)* this.next = (next===undefined ? null : next)* }*//*** @param {ListNode} head* @return {ListNode}*/var reverseList = function(head) {if(!head || !head.next) {return head}let pre = nulllet cur = headlet tmp = head.nextwhile(cur) {cur.next = prepre = curcur = tmptmp = cur && cur.next}return pre};
二、使用递归
/*** @param {ListNode} head* @param {ListNode} p* @return {ListNode}*/var reverseList = function(head, p = null) {if (!head.value) return headconst next = head.nexthead.next = preturn next ? reverseList(next, head) : head};
