14_____链表中倒数第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) {
        ListNode p=head;
        ListNode pre=head;    //定义两个指针
        int count=0;   //记录pre走过的长度
        
        while(pre!=null){
            if(count>(k-1)){   //当pre走了k-1步时 p开始走
                p=p.next;
            }
            pre=pre.next;
            count++;
            
        }
        if(count<k){   //此时: count就为链表的长度  说明 count<k
            return null;
        }else{
            return p;
        }
        
    }
}

解题思路: 两者之间保持一个步长差。

 

posted @ 2019-09-04 09:28  德鲁大叔817  阅读(116)  评论(0)    收藏  举报