import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ListNode FindKthToTail(ListNode head, int k) {
ArrayList<ListNode> nodeList = new ArrayList<ListNode>();
ListNode resultNode = head;
Stack<ListNode> stack = new Stack<ListNode>();
int size = 0;
while (head != null) {
stack.add(head);
head = head.next;
size++;
}
if (k <= 0) {
resultNode = null;
} else if (size >= k) {
while (!stack.isEmpty()) {
nodeList.add(stack.pop());
}
resultNode = nodeList.get(k - 1);
} else if (size < k) {
resultNode = null;
}
return resultNode;
}
}
这部分是考察完整性的。前面做过一个倒序的题,所以在这里首先想到使用栈来实现倒序。
需要检查k的合法性,当k<=0时,是不合法的,返回空,当k>链表长度时,k也是不合法的,同样需要返回空。0