class LNode
{
public LNode next;
public int data;
}
/*找出倒数第k个元素,只遍历一遍*/
class Kk
{
private static LNode head = new LNode();;
private static LNode node;
private static LNode tail;
private static LNode fast;
private static LNode slow;
private static int index;
private static int k;
public static void main(String[] args){
int[] nums = {1,2,3,4,5,6,7,8,9,10};
head.data = nums[0];
tail = head;
createLine(nums);
printLine(); //假设要找的倒数K为4,也就是7
//让fast先走K步,随后slow跟上,同步后移,当fast到达最后,slow的位置就是倒数K
k=4;
fast = head;
for (int i=0;i<4 ;i++ )
{
fast = fast.next;
System.out.println("fast开始:"+fast.data);
} //当fast到达第K个元素,slow就从第一个元素开始
slow = head.next; while (fast!=null&&fast.next!=null)
{
fast = fast.next;
System.out.println("fast="+fast.data);
slow = slow.next;
System.out.println("slow="+slow.data);
} System.out.println("链表的倒数第"+k+"个元素是:"+slow.data); } private static void createLine(int[] nums){
while (index<10)
{
node = new LNode();
tail.next = node;
node.data = nums[index];
node.next = null;
tail = node;
index ++; }
} private static void printLine(){
node = head;
while(node!=null&&node.next!=null){
node = node.next;
System.out.println(node.data);
}
}
}

寻找链表倒数第k个元素,只遍历一遍(编程之美)的更多相关文章

  1. 【剑指offer】输出链表倒数第K个元素

    /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ ...

  2. python经典算法面试题1.5:如何找出单链表中的倒数第K个元素

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [微软笔试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐⭐ 题目描 ...

  3. 判断闰年的方法以及如何获得单链表的倒数第K个元素

    今天很悲催,心中向往的公司,打电话过来面试,问到我两个问题,结果竟然都没有回答上,伤心了,记录下今天失败,希望以后不要被同样的问题给PASS. 问题1.如何判断是否为闰年 所谓闰年那就是:四年一闰,百 ...

  4. [CareerCup] 2.2 Kth to Last Element of Linked List 链表的倒数第k个元素

    2.2 Implement an algorithm to find the kth to last element of a singly linked list. 这道题让我们求链表中倒数第k个元 ...

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

    方法一:快慢指针法 在查找过程中,设置两个指针,初始时指向首元结点(第一个元素结点). 然后,让其中一个指针先前移k步. 然后两个指针再同时往前移动.当先行的指针值为NULL时,另一个指针所指的位置就 ...

  6. Q:链表的倒数第K个元素

    问题:如何得到链表中的倒数第k个元素?   一种简单的思路是遍历链表一遍,并统计出链表中节点的数目,然后计算出倒数第k个元素到链表头节点的元素的距离,然后得到对应的结果.但是,我们能否有一种更加简便的 ...

  7. 【剑指offer】链表倒数第k个节点

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25662121 在Cracking the Code Interview上做过了一次,这次在 ...

  8. 13. 求链表倒数第k个节点

    题目:输入1个链表,输出该链表倒数第k个节点,有头指针和尾指针.链表倒数第0个节点是链表的尾指针节点. 代码: /* 尾指针是倒数第0个,则倒数第k个是正数第len-k个,计算len */ #incl ...

  9. 每天一个小算法(5)----找到链表倒数第K个结点

    估计这个问题在面试中被问烂了. 思路是先找到正数的第K个结点的指针pT,然后和指向头结点的指针pN一起向后移动,直到第K个指针指向NULL,此时pN指向的结点即倒数第K个结点. 如图: #includ ...

随机推荐

  1. 初学Vue

    指令.组件.数据 指令 指令带有前缀,v-表示它们是Vue提供的特殊属性.如: v-bind:绑定元素属性,如:v-bind:title v-if:条件,绑定DOM 的结构 v-for:循环,使用Ar ...

  2. for循环(C语言型)流程

  3. 三、IDS4建立authorization server

    建立authorization server 一.环境搭建 1.创建项目 2.引用NuGet的identityserver4 3.配置asp.net core 管道 打开Startup.cs, 编辑C ...

  4. 愚蠢的sql语法错误(sum (xxx))

    sum和()之间打了一个空格,导致一致报sql语法错误,看了半天不知道怎么回事orz

  5. HWDB手写汉字识别 - CNN

    MARK Caffe 的 googleNet近似模型,识别HWDB汉字200类 准确率96.3

  6. 一次goldengate故障引发的操作系统hang起,HA自动切换

    现场: 跑着数据库的主机A报警应用连接不上数据库,我们无法ssh到主机.第一反应是通过telnet到远程控制口,发现数据库资源和硬件资源在被切换到HA架构的主机B(备机,通常性能比主机A的差,抗不住应 ...

  7. 在Anaconda环境下使用Jupyter Notebook

    !!!Anaconda 和 Jupyter Notebook 在 zsh 环境下不能正常使用! 启动建立的 Anaconda 环境 安装 nb_conda:conda install nb_conda ...

  8. undefined null测试

    测试浏览器:chrome 当有父元素的子元素未定义时undefined和null均为true,类型为undefined 当元素赋给null后undefined和null均为true,类型为object ...

  9. 提供 web前端、H5、html页面 技术服务

    如有前端页面的需求请在评论区留言  第一时间进行回复

  10. 【进阶技术】一篇文章搞掂:Spring高级编程

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文基于<Spring5高级编程>一书进行总结和扩展,大家也可以自行研读此书. 十一.任务调度 任务调度主要由三部分组 ...