当前位置 : 主页 > 编程语言 > 其它开发 >

反转链表

来源:互联网 收集:自由互联 发布时间:2022-05-30
一、题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 二、思路 1.传统方法 定义三个指针变量,pre(指向当前遍历指针的前一个节点),temp(在断开之
一、题目

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

二、思路

1.传统方法

定义三个指针变量,pre(指向当前遍历指针的前一个节点),temp(在断开之前记录当前节点的next),curr(当前遍历指针),

令curr的next往前指向pre,然后pre与curr往前移动

2.ES6解构赋值法

[curr.next,pre,curr]=[pre,curr,curr.next]

三、程序实现
方法1:传统方法
var reverseList = function(head) {
let pre=null;
let curr=head;
while(curr){
//断开之前记录位置
 temp=curr.next 
 //当前节点的next往前指
 curr.next=pre;
 //指针移动
 pre=curr;
 curr=temp;
}
//pre指针到了反转链表的头部,返回即可
return pre;
};

方法2:ES6解构赋值法

var reverseList = function(head) {
let pre=null;
let curr=head;
while(curr){
[curr.next,pre,curr]=[pre,curr,curr.next]
}
//pre指针到了反转链表的头部,返回即可
return pre;
};
上一篇:责任链模式在业务场景中应用
下一篇:没有了
网友评论