剑指offer——面试题15:链表中倒数第k个结点
Solution1:
典型的双指针题目。但要考虑到很多边界条件!
注意此题中陷阱很多,具体看书中解释
20181008修改代码
/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {struct ListNode* p1 = pListHead,*p2=pListHead;int abs_k = k;if (!k) return NULL;while (--abs_k > 0) {if (!p2 || !p2->next)return NULL;p2 = p2->next;}while (p2->next != NULL) {p1 = p1->next;p2 = p2->next;}return p1;}
};
原答案
/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {struct ListNode* p1 = pListHead,*p2=pListHead;int abs_k=k;if(k==0) return NULL;while(--abs_k>0){if(p2 == NULL || p2->next == NULL)return NULL;p2=p2->next;}while(p2->next!=NULL){p1=p1->next;p2=p2->next;}return p1;}
};
剑指offer——面试题15:链表中倒数第k个结点相关推荐
- 剑指offer面试题[15]-链表中倒数第K个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路: 假设链表有n个结点,那么倒数第k个结点就是从头结点开始的第n-k+1个结点,我们只要从头结点开始往后走n-k+1步就可以了.那么问题来了: ...
- 【剑指offer-Java版】15链表中倒数第K个结点
链表中倒数第K个结点:快慢指针解决 需要注意的地方是 1) 可能会存在输入的链表大小小于k 2) 输入的k可能小于等于0 - 所以必须限定k大于0 public class _Q15 {public ...
- 剑指Offer - 面试题22. 链表中倒数第k个节点(快慢指针)
1. 题目 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5 ...
- 剑指offer面试题22. 链表中倒数第k个节点(链表)
题目描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5. ...
- 剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点 ...
- [剑指offer]面试题15:链表中倒数第k个结点
面试题15:链表中倒数第k个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6个结点,从头结点开始 ...
- 剑指Offer #14 链表中倒数第k个结点(快慢指针) | 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 节点结构如下: public class ListNode {int val ...
- 剑指offer:链表中倒数第k个结点 python实现
链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点. 解题思路 暴力求解: 判断链表是否为空: 复制链表,遍历一遍统计其长度: 如果长度小于k.则返回None: 否则,返回其长度-k的链表 ...
- 《剑指offer》链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k个结点. 解析:需要逆向输出节点,可以正向把所有的节点都保存到list里,然后再逆向的输出 /* public class ListNode {int val; ...
- 《剑指Offer》 链表中倒数第k个结点
题目描述: 输入一个链表,输出该链表中倒数第k个结点. 思路: 设置一个新ret,先将pListHead位置往后移k-1位,使得ret与pListHead距离为k-1,这样只要pListHead为最后 ...
最新文章
- python twisted 笔记
- storm能不能测试wadl_情感测试:4朵玫瑰花,哪个会最扎手?测你婚后能不能享住TA?...
- Thinkpad T420 指纹开机 win10 解决方案
- 反编译工具dnspy的安装与使用;
- linux 交叉编译 nginx,交叉编译nginx,luajit
- algorand共识协议_【Filecoin】理解预期共识 - 及它的优缺点
- LeetCode 111. Minimum Depth of Binary Tree
- ORACLE检查点测试,oracle深度解析检查点
- 创业经验点滴 五(转) 关于淘宝
- spring boot + websocket 简单实现斗鱼弹幕功能
- 字符串集合中相互包含关系算法
- 用dw 删除重复html文件,Dreamweaver怎么撤销重做,DW怎么返回上一步,看完就明白了...
- 春招必看一位老学长的真实互联网校招求职心路历程~
- IDEA启动报错Plugin Error Problems found loading plugins: Plugin “GlassFish Integration“ was not...
- 小程序---微信本地存储的方法
- 国有企业数字化转型建设方法论
- 华为老总身份彻底曝光,全世界感到害怕!
- nodejs学习-fs模块
- FreeMarker 网页静态化
- “互联网 +”智慧环保解决方案-山东达斯特
热门文章
- DotNetNuke 04.05.05 安装
- 人工智能学习(二)安装tensorflow与pytorch
- python实习生面试题_【实习】暑期实习之python笔试题(一)
- Linux启动nacos成功日志_nacos初体验踩坑与填坑篇
- android开发 解析 b5,张绍文android开发高手课读书笔记4-启动优化篇
- Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题
- java日期减去天数得日期_Java日期添加天数,减去天数,日历
- Android Q功能
- android toast_Android Toast
- mapreduce代码示例_MapReduce算法示例