题目描述
输入一个链表,输出该链表中倒数第k个结点。
解题思路:
既然取倒数第K个节点,那我就设置一个节点kNode记录值,读到第K个节点时,把头结点赋值给这个节点。
后续每读一个新节点,那么这个kNode也后移一位。
public class Solution {
int index = 0;
ListNode kNode = null;
ListNode headNode = null;
public ListNode FindKthToTail(ListNode head, int k) {
if (k == 0) {
return null;
}
headNode = head;
findKNode(head, k - 1);
return kNode;
}
public void findKNode(ListNode next, int k) {
if (next == null) {
return;
}
if (index < k) {
index++;
} else if (index == k) {
kNode = headNode;
index++;
} else {
kNode = kNode.next;
index++;
}
findKNode(next.next, k);
}
}