【Java】实现一个算法,找出一个单链表中倒数第K个结点

原创 2015年07月08日 16:46:11

用迭代法,使用两个指针P1和P2,分别指向链表中相聚K个结点的两个结点。

P1,p2均指向头加点,然后将P2向前移动K个结点。之后,以相同的速度移动这两个指针,那么p2会在length-K步后到达尾结点,这时p1就刚好在第length-K个结点也就是倒数第K个结点的位置上。

LinkListNode nthToLast(LinkListNode head, int k)
{
	if( k<0 ) return null;
	LinkListNode p1 = head;
	LinkListNode p2 = head;
	//先将P2向前移动k个结点
	for(i = 0; i < k; i++)
	{
		if (NULL == p2) return NULL;
		else p2 = p2->next;
	}
	if (NULL == P2) return NULL;
	
	//接着以同样的速度移动p1和p2,当p2抵达链表末尾时,p1指向第K个结点
	while(p2->next != NULL)
	{
		p1 = p1->next;
		p2 = p2->next;
	}
	return p1;
}


单链表操作之删除倒数第k个结点

****单链表操作之删除倒数第k个结点**** //函数功能:删除链表的倒数第k个结点;1 //自定义的结点结构体和头指针结构体: //函数原型:void DelKNode(pLin...
  • bitboss
  • bitboss
  • 2016年06月10日 18:28
  • 1629

如何找出单链表中的倒数第k个元素

如何找出单链表中的倒数第k个元素
  • jsqfengbao
  • jsqfengbao
  • 2015年04月04日 20:39
  • 3273

单向链表_找出倒数第K个节点

实现一个算法,找出单向链表中倒数第K个结点。
  • z597372259
  • z597372259
  • 2014年10月23日 20:48
  • 1905

输出单链表中倒数第k个结点(Java版)

题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。 解题思路: 如果不要求只能遍历一次单链表,我们可以先...
  • lavor_zl
  • lavor_zl
  • 2015年01月17日 15:40
  • 1483

[算法]找出单链表中的倒数第k个元素

找出单链表中的倒数第k个元素解题思路: 为了求出链表中的倒数第k个元素,最容易想到的方法是首先遍历一遍单链表,求出整个单链表的长度n,然后将倒数第k个,转换为正数第n-k个,接下去遍历一次就可以得...
  • CodeEmperor
  • CodeEmperor
  • 2016年05月06日 16:12
  • 3106

剑指Offer面试题15(Java版):链表中倒数第K个结点

题目: 输入一个链表,输出该链表中倒数第k哥结点。  为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。  例如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月01日 15:28
  • 1326

面试题15:查找链表中倒数第k个结点

仅一次遍历查找链表中倒数第k个结点。
  • kekong0713
  • kekong0713
  • 2016年06月27日 14:25
  • 741

查找链表中倒数第k个节点,若查找成功,返回数据域的值

有两种思路: 思路一:首先遍历一遍链表,得到链表长度n,然后返回n-k+1个节点的数据域 思路二:定义两个指针p和q,都指向头节点的下一个节点,等到p移动到第k个节点,q和p同步移动,等到p移动到...
  • fandoudou123
  • fandoudou123
  • 2016年09月14日 09:46
  • 477

【华为oj】输出单向链表中倒数第k个结点

问题描述:          输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。 链表结点定义如下: struct ListNode {      int  ...
  • haoxiaodao
  • haoxiaodao
  • 2015年08月09日 17:51
  • 779

查找单链表中的倒数第m个结点

例4,设计一个算法求出单链表的倒数第m个结点,要求不得求出链表长度,不得对链表进行逆转,如果找到该结点就返回它的地址,否则就返回NULL。      【分析】该题目要求求出单链表的倒数第m个结点,但又...
  • sanqima
  • sanqima
  • 2014年12月20日 16:44
  • 914
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Java】实现一个算法,找出一个单链表中倒数第K个结点
举报原因:
原因补充:

(最多只允许输入30个字)