原理:两个指针先都指向头指针的下一节点,一个指针先走K-1步,然后俩指针再一起走,后走的指针所指为所求,注意边界处理。
class Node{
Node link;
int data;
public Node(){}
public Node(int m) {
data = m;
}
}
public class MyLinkList {
public Node createLinkList(int[] a){
Node head_node = new Node();
Node temp_node = head_node;
for(int m : a){
Node n = new Node(m);
temp_node.link = n;
temp_node = n;
}
return head_node;
}
public int printK_NodeOfCountFromEnd(Node head_node,int k){
if(null == head_node || k <= 0)
return 0;
Node temp1_node = head_node.link;
for(int i = 0; i < k-1 && null != temp1_node; i++)
temp1_node = temp1_node.link;
if(null == temp1_node)
return 0;
Node temp2_node = head_node.link;
while(null != temp1_node.link){
temp1_node = temp1_node.link;
temp2_node = temp2_node.link;
}
System.out.println(temp2_node.data);
return 1;
}
public static void main(String[] args){
MyLinkList list = new MyLinkList();
int[] a = {1,4,2,5,3};
list.printK_NodeOfCountFromEnd(list.createLinkList(a), 2);
}
}
运行:
C:\test>java MyLinkList
5
文章转自:[url]http://blog.csdn.net/nash_/article/details/8205491
[/url]
源码:
- 大小: 43.9 KB
分享到:
相关推荐
查找链表中倒数第K个节点,源代码验证通过,两种查找方法。
删除链表中倒数第N个结点后,返回结果链表的首结点
题:输入一个链表,输出该链表中倒数第k个结点。 解题思路一:为了实现只遍历链表一次就能找到倒数第k个节点,我们可以定义两个指针。让第一个指针先向前走k-1步,第二个指针保持不动;从第k步开始,第二个指针也...
题目输入一个链表,输出该链表中倒数第k个结点思路将输入链表赋给两个链表;然后和另外一个链表一起走到链表尾,另外一个链表即在倒数第k个结点。if head ==
链表功能的一个扩展延伸,查找倒数第K个元素,是某年考研题
本题的思路和之前看矩形那一题有相似之处,就是我们优先考虑边界情况,比如本题,我们需要查找链表中的倒数第K个节点,那么想象此时身处链表最后的位置,我想要知道前面K个位置的结点.就像是跑步一样,我先到达终点....
创建一个链表,编程实现查找它的倒数第k个节点
只遍历一次单向链表,找到倒数第N个结点,
cpp代码-输入一个链表,输出该链表中倒数第k个结点。
此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到第 N - K 个节点处,该位置就是倒数第 K 个节点。代码public Li
python_leetcode面试题解之第19题删除链表的倒数第N个结点
主要介绍了C语言实现输出链表中倒数第k个节点,主要涉及链表的遍历操作,是数据结构中链表的常见操作。需要的朋友可以参考下
java面试 java面试_leetcode面试题解之第19题删除链表的倒数第N个结点
c语言 c语言_c语言编程基础之leetcode题解第19题删除链表的倒数第N个结点
c++ c++_c++编程基础之leetcode题解第19题删除链表的倒数第N个结点
此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到第 N - K 个节点处,该位置就是倒数第 K 个节点。public List
此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到第 N - K 个节点处,该位置就是倒数第 K 个节点。public List
问题:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表...
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 分析:使用两个指针,low,fast,先把fast的指针指向第k个元素,然后low和fast同时向后遍历,当fast遍历到结尾时,low...