题目描述:输入某个链表的表头,输出反转后的链表头
题目难度:⭐⭐
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
//时间复杂度O(n),空间复杂度O(1)
function ReverseList(pHead)
{
//保存当前结点
let cur=pHead;
if(cur==null||cur.next==null) return cur;
let prev=null; //前一个结点
let next=null; //下一个结点
while(cur){
next=cur.next; //保存下一个结点
cur.next=prev; //当前结点的下一个结点指向前面的节点
prev=cur; //把所有节点往后挪
cur=next;
}
return prev;
}
/**------------------------------**/
//时间复杂度O(n),空间复杂度O(n)
function ReverseList(pHead)
{
//把链表存到数组中
let node = pHead;
let ary = [];
while(node){
ary.push(node.val)
node=node.next //指向下一个结点
}
node = pHead
while(node){
node.val = ary.pop()
node=node.next
}
return pHead
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。