美文网首页
链表中倒数第k个节点

链表中倒数第k个节点

作者: BluthLeee | 来源:发表于2019-09-27 13:49 被阅读0次

题目描述

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

分析

定义两个指针,一次遍历即可,时间复杂度为O(n)
初始化两个指针均指向链表头节点。第一个指针遍历整个链表,遍历过程中,k--,这样当k<1时,第二个指针开始从头遍历,当第一个指针遍历结束时,第二个指针正好遍历到该链表中倒数第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) {
        ListNode p=head;
        ListNode pre=head;
        int count=0;
        int a=k;
        while(p!=null){
            p=p.next;
            count++;
            if(k<1){
                pre=pre.next;
            }
            k--;
        }
        if(count<a){
            return null;
        }
        return pre;
    }
}

参考链接

牛客网

相关文章

网友评论

      本文标题:链表中倒数第k个节点

      本文链接:https://www.haomeiwen.com/subject/ddovyctx.html