关闭

剑指offer--链表中倒数第k个结点

标签: 剑指offer-java实现牛客网在线编程链表
433人阅读 评论(0) 收藏 举报
分类:

题目描述
输入一个链表,输出该链表中倒数第k个结点。


AC代码:

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        ListNode p = head;
        int len = 0;
        if (k < 0) {  
             System.out.println("k不可以为负数");  
             return null;  
        }  

        if (head == null) {  
            System.out.println("单链表为空");  
            return null;
        }  

        while(p != null){
            len++;
            p = p.next;
        }

        if ( k > len){
            System.out.print("单链表太短");
            return null;
        }else{
            k = len - k ;
            while(k > 0){
                head = head.next;
                k--;
            }
            return head;
        }
    }
}
1
0
查看评论

11. 微软面试题:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针

题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 分析: 单链表只能向后遍历,不能向前遍历,尾指针好找,倒数第K个不能从尾指针向前找。 倒的不好找,正的好找,我们只需要知道链表的总长度,就可以知道正数第几个节点(len(list) - k -1)...
  • hhh3h
  • hhh3h
  • 2014-03-09 10:23
  • 1707

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

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

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

题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。 解题思路: 如果不要求只能遍历一次单链表,我们可以先遍历一次单链表,求出它的结点的总个数n(包括头结点),所以单链表的结点是从倒数第n-1个到倒数第0个...
  • lavor_zl
  • lavor_zl
  • 2015-01-17 15:40
  • 1512

JAVA实现链表中倒数第K个节点问题(《剑指offer》)

题目描述 输入一个链表,输出该链表中倒数第k个结点。 解题思路: 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点。 解答: ...
  • qq_15062527
  • qq_15062527
  • 2015-10-02 16:23
  • 1067

输入一个单向链表,输出该链表中倒数第K个结点

输入一个单向链表,输出该链表中倒数第K
  • yincheng01
  • yincheng01
  • 2014-09-14 22:34
  • 1334

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

****单链表操作之删除倒数第k个结点**** //函数功能:删除链表的倒数第k个结点;1 //自定义的结点结构体和头指针结构体: //函数原型:void DelKNode(pLinList pList, int k); ps:我在博客中每次的思路分析,只是将我的对每道题的理解...
  • bitboss
  • bitboss
  • 2016-06-10 18:28
  • 1687

leetcode 删除单链表中的倒数第k个元素

问题分析:
  • ych_ding
  • ych_ding
  • 2014-12-10 21:46
  • 930

链表(5)----查找链表倒数第K个节点

1、链表定义 typedef struct ListElement_t_ { void *data; struct ListElement_t_ *next; } ListElement_t; typedef struct List_t_{ int size; ...
  • beitiandijun
  • beitiandijun
  • 2014-12-12 10:36
  • 2550

删除链表中倒数第k个节点

1. 问题描述  给定一个单链表,删除它的倒数第k个节点。例如给定链表: 1→2→3→4→51\to 2 \to 3\to 4 \to 5,删除它的倒数第二个节点后变为 1→2→3→51\to 2 \to 3\to 5。可以假设倒数第k个节点总是存在。2. 方法与思路  很容易想到第一种方法,就是先...
  • Jeanphorn
  • Jeanphorn
  • 2015-07-20 15:54
  • 2786

[java 面试100道]13.输入一个单向链表,输出该链表中倒数第k个结点。

题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 链表结点定义如下:   class ListNode{ int key; ListNode next; public ListNode(int key){ this.key=k...
  • stonetudou
  • stonetudou
  • 2012-10-15 09:56
  • 2028
    个人资料
    • 访问:155552次
    • 积分:4927
    • 等级:
    • 排名:第6843名
    • 原创:329篇
    • 转载:0篇
    • 译文:0篇
    • 评论:80条
    博客专栏
    最新评论