双向链表删除节点时间复杂度_巧妙删除链表中节点

注:内容来源于我本人的微信公众号:码农历险技

一.删除链表中指定的节点

072e8a146f4c6e6cbce18e8cfb38719a.png

LeeCode题目

这道题是删除指定的节点,一般删除节点node我们需要知道这个node的前一个节点,而这道题我们得不到它的前一个节点。

我们可以分析一下,当删除的是最后一个元素时,直接把最后一个元素置为null,

7f631b8a53ef8b368ba1c8bae120af5c.png

当删除的不是最后一个节点的时候,我们可以把node节点和node.next指针指向的节点交换值,

b9593f12d453f6dd7cf701bb2e486fce.png

这样子只需要把node的下一个节点删掉就行啦,

b681af3540573912ce36b7536109915a.png
public class DeleteNode { public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public void deleteNode(ListNode node) { if(node==null) return; //处理最后一个节点 if(node.next==null){ node=null; return; } //把node.next的值赋值给node node.val=node.next.val; //再把node.next删掉就可以了 node.next=node.next.next; }}

LeeCode上运行结果:

f7223fff0563b7a806bca084aed13516.png

二.删除链表中倒数第N个节点

5e0cf4d0f2e5a23d8562e0a6f81d9912.png

LeeCode题目

这道题常规做法可以先遍历一次链表求出链表的长度len,倒数第N个节点就是第(len-N+1)个,但是也有一次遍历就可以解决的算法,说到一次遍历估计很多人跟我想到了双指针。

同样的,加个虚拟指针,同时设置两个指针指向虚拟指针,

0be1c495abe6a24c86d25af0ae92f9bb.png

这时候想让p2先走n+1步,

f3fd69c9ae8e491bcd6276956cba5736.png
f9eed490eb3f2e1b68975d92fe1cd637.png

这时候就好办了,每次让p1,p2同时向右走一步,直到p2为null为止,

79842e39b78f3a39a33dcc003315cca3.png

这时候p1后面的节点就是要删除的节点,直接删除这个节点就行了。

public class DeleteNode { public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }public ListNode removeNthFromEnd(ListNode head,int n) {if(head==null) return head; //新建虚拟节点 ListNode xuni=new ListNode(0); xuni.next=head; ListNode p1=xuni; ListNode p2=xuni; for(int i=0;i<=n;i++){ p2=p2.next; } while(p2!=null){ p2=p2.next; p1=p1.next; } //删除节点 p1.next=p1.next.next; return xuni.next; }}

LeeCode上运行结果:

20b14b65efa301667ad69f026314b890.png
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值