-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path链表中倒数第k个结点.cpp
More file actions
38 lines (35 loc) · 907 Bytes
/
Copy path链表中倒数第k个结点.cpp
File metadata and controls
38 lines (35 loc) · 907 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* *************************
* 链表中倒数第k个结点(代码鲁棒性)
* 输入一个链表,输出该链表中倒数第k个结点。
* *************************/
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 (!pListHead)
return NULL;
ListNode *pFront, *pBack;
pFront=pBack=pListHead;
unsigned int counter=0;
//一共不到k个节点
while(counter<k-1 && pBack!=NULL){
pBack = pBack->next;
counter++;
}
if(!pBack)
return NULL;
//有k或k个以上节点
while(pBack->next!=NULL){
pBack = pBack->next;
pFront = pFront->next;
}
return pFront;
}
};