给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
给
数据范围: 0≤n≤1000
要求:空间复杂度 O(1) ,时间复杂度O(n) 。
如当输入链表{1,2,3}时,
经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。
以上转换过程如下图所示:
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ function ReverseList(head) { if(!head?.next) return head let node = head // 1 let x = node?.next // 2 node.next = null while(!!x){ let t = x.next // 3 x.next = node // 2->1 node = x // 2 x = t //3 console.log('current node: ==> ',node, 'x: ==> ', x) } console.log(node) return node } module.exports = { ReverseList: ReverseList, };