14.链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个结点。
注意:
k >= 0
;- 如果k大于链表长度,则返回 NULL;
样例
输入:链表:1->2->3->4->5 ,k=2
输出:4
思路
用栈存储所有节点。然后出栈到第k个节点就行。
class Solution {
public ListNode findKthToTail(ListNode pListHead, int k) {
ListNode head=pListHead;
if(head==null ||k<0)
{
return null;
}
Stack<ListNode> stack=new Stack<>();
int length=0;
while(head!=null)
{
stack.push(head);
head=head.next;
length++;
}
if(k>length) return null;
while(k-->1)
{
stack.pop();
}
return stack.pop();
}
}