15:链表中倒数第K个节点
/**
* 面试题15:链表中倒数第K个节点
* 输入一个链表,输出该链表中倒数第k个结点。
*/
public class _15_linked_K {
public static void main(String[] args){
Solution15 solution15 = new Solution15();
ListNode15 l5 = new ListNode15(1);
l5.next=new ListNode15(2);
l5.next.next=new ListNode15(3);
l5.next.next.next=new ListNode15(4);
l5.next.next.next.next=new ListNode15(5);
System.out.println(solution15.FindKthToTail(l5,4).val);
}
}
/**
* 思路一:倒数第k个节点的值即为正数第n-k+1个节点,但是链表长度n未知,求n需再遍历一次链表。
* 思路二:设置两个指针,第一个指针从链表第k-1个位置开始遍历,第二个指针从第0个位置开始遍历,当第一个指针到达链表尾部的时候,第二个指针即为倒数第k个节点。
*/
class Solution15 {
public ListNode15 FindKthToTail(ListNode15 head,int k) {
if(head==null||k<=0){
return null;
}
ListNode15 p=head;
for(int i=1;i<k;i++){
p=p.next;
if(p==null){
return null;
}
}
while(p.next!=null){
head=head.next;
p=p.next;
}
return head;
}
}
class ListNode15 {
int val;
ListNode15 next = null;
ListNode15(int val) {
this.val = val;
}
}
15:链表中倒数第K个节点的更多相关文章
- 题目15 链表中倒数第K个节点
///////////////////////////////////////////////////////////////////////////////////// // 5. 题目15 链表中 ...
- 《剑指offer》面试题22. 链表中倒数第k个节点
问题描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5. ...
- 剑指offer-第三章高质量的代码(输出该链表中倒数第K个节点)
题目:输入一个链表,输出这个链表中倒数第K个节点.(代码的鲁棒性) 思路:用两个指针p1和p2,都指向头节点,开始的时候,p2不动,p1移动k-1次,指向第k个节点.此时,如果p1->next! ...
- 链表中倒数第K个节点
问题描述: 找出链表中倒数第K个节点 思路分析: 用两个指针,一前一后,保持k个距离,前面的指针移动到末尾,后面的指针就刚好直到第k个节点, 要考虑到k为0,倒数第k个节点不存在的情况. 参考代码: ...
- 链表中倒数第k个节点(Java)
链表中倒数第k个节点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路:two-pointers思想,因为是单链表,没法得prevous点,直接遍历得到链表长度再重新遍历效率很低. 采用双指 ...
- 《剑指offer》 链表中倒数第k个节点
本题来自<剑指offer> 链表中倒数第k个节点 题目: 输入一个链表,输出该链表中倒数第k个结点. 思路: 倒数第k个节点,而且只能访问一遍链表,定义两个节点,两者之间相差k个距离,遍历 ...
- 剑指offer(14)链表中倒数第K个节点
题目描述 输入一个链表,输出该链表中倒数第k个节点. 题目分析 用两个指针来跑,两个指针中间相距k-1个节点,第一个指针先跑,跑到了第k个节点时,第二个指针则是第一个节点. 这时候两个一起跑.当第一个 ...
- 面试题 15:链表中倒数第 k 个结点
面试题 15:链表中倒数第 k 个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点.为了符合大多数人的习惯, 本题从 1 开始计数,即链表的尾结点是倒数第一个结点.例如一个有 6 个结点的 链 ...
- php实现求链表中倒数第k个节点
php实现求链表中倒数第k个节点 一.总结 $head = $head->next; //1.将$head节点next域里面的记录的那个地址值($head节点的下一个节点的地址)给$head,$ ...
随机推荐
- memcmp 和 memcpy使用
#include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> ...
- MySQL在net中Datatime转换
<add name="adDb" connectionString="Persist Security Info=False;database=ad ...
- 《设计模式》-原则三:依赖倒置原则(DIP)
这几天晚上回来都去玩了!没有坚持学习.真的好惭愧! 非常自责 后面一定要坚持 一气呵成 争取每天学一点,把这个学完. 今天主要是看了一下 设计模式中的 原则三: 依赖倒置原则(DIP) 官方是这样 ...
- LintCode 158: Anagram
LintCode 158: Anagram 题目描述 写出一个函数anagram(s, t)判断两个字符串是否可以通过改变字母的顺序变成一样的字符串. 样例 给出s = "abcd" ...
- D. Sum in the tree(树形+贪心)
题目链接;http://codeforces.com/contest/1099/problem/D 题目大意:给出一棵树,每个节点到根节点的路径上经过的所有点的权值之和,其深度为偶数的节点的信息全部擦 ...
- jQuery和Prototype的兼容性和冲突的五种解决方法
第一种情况:先加载Prototype,再加载jQuery方法一:jQuery 库和它的所有插件都是在jQuery名字空间内的,包括全局变量也是保存在jQuery 名字空间内的. 使用jQuery.no ...
- 20165227 实验三《敏捷开发与XP实践》实验报告
2017-2018-4 20165227 实验三<敏捷开发与XP实践>实验报告 实验内容 1.XP基础 2.XP核心实践 3.相关工具 实验要求 1.没有Linux基础的同学建议先学习&l ...
- 使用httpClient调用接口,参数用map封装或者使用JSON参数,并转换返回结果
这里接口用表存起来,标记请求方式,然后接受参数,消息或者请求参数都可以, 然后先是遍历需要调用的接口,封装参数,再分别调用get与post即可,没有微服务还是得自己写 //消息转发-获取参数中对应参数 ...
- 【算法学习】manacher
manacher太水了. 这篇blog不能称作算法学习,因为根本没有介绍…… 就贴个模板,太简单了…… #include<cstdio> #include<cstring> # ...
- aarch64_o2
opensips-event_rabbitmq-2.2.3-1.fc26.aarch64.rpm 2017-03-10 01:22 42K fedora Mirroring Project opens ...