/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if(nullptr==pListHead)
return pListHead;
if(k==0)
return nullptr;
stack<ListNode *> tree;
ListNode *p=pListHead;
while(p!=NULL)
{ tree.push(p);p=p->next;}
for(int i=1;i<k;i++)
{
tree.pop();
if(tree.empty())
return nullptr;
}
return tree.top();
}
};
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if(nullptr==pListHead)
return pListHead;
if(k==0)
return nullptr;
stack<ListNode *> tree;
ListNode *p=pListHead;
while(p!=NULL)
{ tree.push(p);p=p->next;}
for(int i=1;i<k;i++)
{
tree.pop();
if(tree.empty())
return nullptr;
}
return tree.top();
}
};