美文网首页
链表中倒数第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