算法:输入一个链表,输出该链表中倒数第k个结点。
算法:输入一个链表,输出该链表中倒数第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; }