c++如何删除倒数第k个节点
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,本文小编为大家详细介绍"c++如何删除倒数第k个节点",内容详细,步骤清晰,细节处理妥当,希望这篇"c++如何删除倒数第k个节点"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
千家信息网最后更新 2025年02月08日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安全错误
数据库的锁怎样保障安全
商场大屏触摸软件开发公司
政务软件开发公司怎么收费
对实体类的数据库操作语句
数据库连接数怎么算
天使之战服务器不一样
关于停车位的软件开发
数据库安全软件
服务器cpu故障
服务器远程打游戏的远程桌面
12盘位服务器
网络安全示范11所
卡盟服务器
大学生网络安全问题的图文
计算机网络技术培养费
广东智能软件开发电话
北京布袋网络技术有限公司
高校网络安全使用
腾讯云服务器买了之后还会扣钱吗
妄想山海捏脸数据库在哪里
网络安全产业园企业如何申请
网络安全知识手写报
华为手机安全定位服务器
餐饮数据库代码java
数据库管理技术的三个
社区国家网络安全周信息
软件开发真实豪华办公室
滁州学院数据库检索
佛山风禾原互联网科技
苹果服务器不能用怎么办
串口服务器网页怎么做