码迷,mamicode.com
首页 > 其他好文 > 详细

链表中倒数第k个结点

时间:2019-04-25 01:16:57      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:val   nbsp   输出   计数   class   node   next   节点   ==   

描述

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

 

解析

用两个指针就行,前面的指针先于后面的指针k个节点。

 

或者,用栈啊,先进后出。

 

代码

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        if (null == head) {
            return head;
        }
        ListNode pre = head;
        int nodeCount = 0;//计数节点数量
        int originK = k;//记录原始K,用于最后与节点数比较
        while (head != null) {
            head = head.next;
            nodeCount++;
            
            k--;
            if (k < 0) {
          //这里不能k <= 0,因为head最后是null。如果 k == 0,那么 pre 也会是 null pre
= pre.next; } } return nodeCount >= originK ? pre : null; } }

 

链表中倒数第k个结点

标签:val   nbsp   输出   计数   class   node   next   节点   ==   

原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/10765946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!