算法:输入一个链表,输出该链表中倒数第k个结点。《剑指offer》

算法:输入一个链表,输出该链表中倒数第k个结点。《剑指offer》

思路加到注释里面了;

1:两个if判断是否返回值为空,首个为空,没有第k个值;

2:for循环找到倒数第k个值,返回为answer,也就是第count-k

/**
 * @Author liguo
 * @Description 输入一个链表,输出该链表中倒数第k个结点。
 * @Data 2018-08-12 23:40
 */
/*
public class ListNode {
    int val;
    ListNode next = null;
 
    ListNode(int val) {
        this.val = val;
    }
}*/
 class Solution {
    public ListNode FindKthToTail(ListNode list,int k) {
        //两个if判断是否返回值为空,首个为空,没有第k个值;
        if(list == null)           return list;
        ListNode node = list;
        int count = 0;              //定义节统计节点个数
        if(node != null){
            count++;
            node = node.next;
        }
        if(count < k)             return null;
        //for循环找到倒数第k个值,返回为answer,也就是第count-k
        ListNode p = list;
        for(int i=0; i<count-k; i++){
            p = p.next;
        }
        return p;
    }

猜你喜欢

转载自www.cnblogs.com/liguo-wang/p/9465581.html