/*
最原始的思路,第一次遍历链表获得链表长度,第二次遍历到链表长度/2,进行删除操作
细细思考的思路,
0个节点,不删除
1个节点,不删除
2个节点,删除第一个节点
3个节点,删除第二个节点
4个节点,删除第二个节点
5个节点,删除第三个节点
链表长度每增加2,要删除的节点位置增加1
所以,只需一次遍历就可以
*/
var linkList = {
val:1,
next:{
val:2,
next:{
val:3,
next:{
val:4,
next:{
val:5
}
}
}
}
};
var removeMidNode = function(head){
if(head === undefined || head.next === undefined){
return head;
}
if(head.next.next === undefined){
return head.next;
}
var pre = head;
var cur = head.next.next;
while(cur.next !== undefined && cur.next.next !== undefined){
pre = pre.next;
cur = cur.next.next;
}
pre.next = pre.next.next;
return head;
};
var result = removeMidNode(linkList);
console.log(result);
删除链表中间节点
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 题目 给定单向链表中的某个节点的指针指针(中间节点),要求删除该节点 方法一 假设A->B->C,我们持有B的指针...
- 从链表中删除节点包含两种考察方式:1.参数列表中只给了待删除的节点; 2.参数列表中给定了链表头指针和要删除的值 ...
- 实现方式有二:1、常规方法: (1)遍历一遍单链表,计算单链表的长度L (2)计算中间节点j为L/2,(或者当L为...
- 面试题一般会有普通方法和高级方法,高级方法无疑会大大的加分! 题目一:快速找到未知长度单链表的中间节点(腾讯面试题...