c++如何删除倒数第k个节点
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本文小编为大家详细介绍"c++如何删除倒数第k个节点",内容详细,步骤清晰,细节处理妥当,希望这篇"c++如何删除倒数第k个节点"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
千家信息网最后更新 2024年11月11日c++如何删除倒数第k个节点
本文小编为大家详细介绍"c++如何删除倒数第k个节点",内容详细,步骤清晰,细节处理妥当,希望这篇"c++如何删除倒数第k个节点"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
算法:
该类型的题目,核心点在于如何找到倒数第k个节点的位置,典型的操作办法是,双指针的方法。
第一个指针先偏移k个位置,第二个指针才开始执行然后两个指针同时往后移动,第一个指针到链表尾部,第一个指针就是倒数第k个位置
题目 1 :链表中倒数第k个节点
代码实现:
// 算法:这是典型的双指针的做法,// 第一个指针先偏移k个位置,第二个指针才开始执行// 然后两个指针同时往后移动,第一个指针到链表尾部,第一个指针就是倒数第k个位置/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func getKthFromEnd(head *ListNode, k int) *ListNode { c := head for i:=0;i
题目2: 删除倒数第k个节点
代码实现:
// 算法:该问题是题目1的变形题目,// 采用题目1的算法找到倒数第k个节点的前序节点,然后删除倒数第k个节点/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func removeNthFromEnd(head *ListNode, n int) *ListNode { head1 := head head2 := head for i:=n; i>0; i-- { head2 = head2.Next } if head2 == nil { head = head.Next return head } for { if head2.Next == nil { break } head2 = head2.Next head1 = head1.Next } // 获取到 倒数第n-1位置的节点 head1.Next = head1.Next.Next return head}
读到这里,这篇"c++如何删除倒数第k个节点"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
指针
节点
题目
个位
算法
c++
文章
两个
代码
位置
典型
内容
同时
就是
偏移
移动
妥当
做法
办法
尾部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
做软件开发公众号
安信交易服务器慢
网络安全主动攻击案例
深圳牛蛙网络技术公司
怎么快速提升数据库的库存
网络安全画画作品欣赏
浪潮服务器更改开机启动项
深圳佳为软件开发公司
好用的经济学数据库
天猫类目软件开发
中邮理财软件开发待遇
软件开发进度质量保证
系统和网络安全防范
大学生做一个数据库
数据库主键是否唯一
2019isc网络安全大会
服务器管理器安装位置
测绘师网络技术
创建数据库关系表失败1064
eplan启动找不到数据库
计算机网络技术网上作业
如何删除数据库表中的数据
杭州火格网络技术有限公司
兰州服务器网关
软件开发在广东哪里找工作
服务器怎么看谁占了内存
大学生做一个数据库
软件开发dely是什么意思
软件开发座右铭
服务器闪断