function node(value) {
this.value = value;
this.next = null;
}
const node1 = new node(1)
const node2 = new node(2)
const node3 = new node(3)
const node4 = new node(4)
const node5 = new node(5)
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
// 重要 每个节点都认为自己是根节点
function nizhi(root) {
if (root.next.next === null) { // 递归的出口
root.next.next = root; //当前的root 是4 root.next.next ==> 5 5的next ==> 4
return root.next; // 返回的是5的数据
} else {
return nizhi(root.next)
root.next.next = root; // 第一圈 1. next.next ==2 2就会指向1 1的next 必须为null (重要 每个节点都认为自己是根节点 ) 不然互相☞就会死循环了
root.next = null; //关键点 1的next 必须指向null
}
}
const result = nizhi(node1);
console.log(result, 43) // 当前是5
2021-01-15 算法学习=链表逆置
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 链表面试题常用数据结构和技巧 1)使用容器(哈希表、数组等) 2)快慢指针 快慢指针 1)输入链表头节点,奇数长度...