倒数第K个节点,重点是边界条件,以及输入情况。
具体思路:
{
int n;
while(cin >> n){
//创建头节点
ListNode *pHead = new ListNode(-1);
ListNode *p = pHead;
for(int i = 0; i < n ; i++)
{
int data;
cin >> data;
ListNode *q = new ListNode(data);
p->next = q;
p = p->next;//将其指针放入其中.
}
int Kth;
cin >> Kth;
p = pHead;//重新回到这边去.
if (Kth == 0) cout << 0 << endl;
else if( n - Kth >= 0)
{
for(int i = 0; i <= n-Kth;++i)
{
p = p->next;
}
cout << p->val << endl;
}
else
cout << "NULL" << endl;
}
return 0;
}
最重要的是边界条件,即K如果是0怎么办?
K大于了n怎么办? k-n>=0
除此之外的其他情况??
原文创作:goto2091
原文链接:https://www.cnblogs.com/goto2091/p/13723870.html