描述
输入一个链表,输出该链表中倒数第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) { if (null == head) { return head; } ListNode pre = head; int nodeCount = 0;//计数节点数量 int originK = k;//记录原始K,用于最后与节点数比较 while (head != null) { head = head.next; nodeCount++; k--; if (k < 0) {
//这里不能k <= 0,因为head最后是null。如果 k == 0,那么 pre 也会是 null pre = pre.next; } } return nodeCount >= originK ? pre : null; } }