链表中倒数第K个节点

定义两个指针,两个指针的间距设置好为K-1后,两个指针同时跑,当后面的指针指到链表尾部的时候,前面的指针就到了倒数第K个节点

 

public class Solution {
    
    public Node FindKthToTall(Node head,int k){
        Node phead=head;//后面的指针
        Node temp=head;//前面的指针,与后面的指针相隔2个节点,
                       // 当后面的指针为null时,前面的指针也就是倒数第K个节点
        if(phead==null||k<=0){
            return null;
        }
        for(int i=0;i<k-1;k++){
            if(phead.next==null){
                return null;
            }
            phead=phead.next;
        }
        while(phead.next!=null){
            phead=phead.next;
            temp=temp.next;
        }
        return temp;
    }
}

class Node{
    int data;
    Node next;
    public Node(int data){
        this.data=data;
        this.next=null;
    }
}

 

posted @ 2019-09-15 08:48  _SpringCloud  阅读(4)  评论(0编辑  收藏  举报  来源