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