题目: 输入一个链表,输出该链表中倒数第k哥结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6。这个链表的倒数第3个结点是值为4的结点。

代码:

package offer;

import java.util.Scanner;

class Node2
{
    int val;
    Node2 next = null;
    Node2(int val)
    {
        this.val = val;
    }
}
public class ti22 {
    public static int findKNode(Node2 head,int k)
    {
        Node2 p = head;
        if(k<=0||head==null)
        {
            return -1;
        }
        while(k!=0)
        {
            k--;
            p = p.next;
            if(p==null)
            {
                return -1;
            }
        }
        Node2 q = head;
        while(p!=null)
        {
            q = q.next;
            p = p.next;
        }
        return q.val;
    }
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        Node2 node1 = new Node2(1);
        Node2 node2 = new Node2(2);
        Node2 node3 = new Node2(3);
        Node2 node4 = new Node2(4);
        Node2 node5 = new Node2(5);
        Node2 node6 = new Node2(6);
        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        node5.next = node6;
        Node2 head = node1;
        System.out.println(findKNode(head,k));
    }
}

【剑指offer】面试题22:链表中倒数第 K 个节点相关推荐

  1. 剑指Offer - 面试题22. 链表中倒数第k个节点(快慢指针)

    1. 题目 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5 ...

  2. 剑指offer面试题22. 链表中倒数第k个节点(链表)

    题目描述 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5. ...

  3. 剑指offer面试题[15]-链表中倒数第K个结点

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路: 假设链表有n个结点,那么倒数第k个结点就是从头结点开始的第n-k+1个结点,我们只要从头结点开始往后走n-k+1步就可以了.那么问题来了: ...

  4. 剑指offer:面试题22. 链表中倒数第k个节点

    题目:链表中倒数第k个节点 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1 ...

  5. 剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点 ...

  6. 面试题22. 链表中倒数第k个节点

    2020-03-21 1.题目描述 链表中倒数第k个节点 2.题解 倒数第k个,相当于正数第l-k+1个,其中l为链表的长度 3.代码 #include <iostream> using ...

  7. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点

  8. 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点

    [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 文章目录 [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 一.遍历 二.双指针 总结 一.遍历 先遍历统计链表长 ...

  9. 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)

    19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...

  10. LeetCode-剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点 思路一:利用快慢双指针 /*** Definition for singly-linked list.* struct ListNode {* int ...

最新文章

  1. 软件定义光网络-SDON
  2. Linux有问必答-如何创建和挂载XFS文件系统
  3. ActiveMQ学习(七)
  4. ubuntu 安装phpstorm
  5. linux ksh 历史命令,防止Linux中的bash(和ksh)历史记录更改
  6. Elasticsearch5中安装Elasticsearch-head插件
  7. 设计模式笔记零:设计模式简介
  8. 设计模式的七大设计原则:其六:迪米特法则
  9. Asp.net MVC代替php
  10. useradd和adduser的区别
  11. 开课吧Java教程:如何用listFiles()方法
  12. 第二课 了解编程环境
  13. [!] Gradle threw an error while downloading artifacts from the network. Retrying to download... Runn
  14. 【无标题】scp的使用
  15. 数字信号处理实验二:DFT的共轭对称性及应用
  16. 第二篇 我的书单(Jason Booklist)
  17. 深度神经网络和人工神经网络区别
  18. [PB] PB中读写文件通用的两个函数
  19. 银河麒麟v4.0.2安装
  20. 我的世界html启动器资源,我的世界hmcl启动器mod

热门文章

  1. LeetCode 252. 会议室(排序)
  2. LeetCode 1310. 子数组异或查询(前缀异或)
  3. 剑指Offer - 面试题38. 字符串的排列(全排列,排序,回溯+剪枝)
  4. Android8.1怎么装谷歌,谷歌PixelXL安卓9.0/8.1/8.0/7.X安装面具ROOT方案
  5. 修改dts后重编译_「正点原子FPGA连载」第二十章另一种方式编译ZYNQ镜像
  6. Python随机数生成方法
  7. python中的生产者与消费者模式
  8. 微软亚洲研究院NLC组招聘实习生!与一线研究员共探NLP前沿与落地!
  9. NLP史上最全预训练模型汇总
  10. 美团的DBProxy实践