链表中倒数第k个结点

输入一个链表,输出该链表中倒数第k个结点。

开始没有判断pListHead==NULL,导致输出错误。

 1 /*
 2 struct ListNode {
 3     int val;
 4     struct ListNode *next;
 5     ListNode(int x) :
 6             val(x), next(NULL) {
 7     }
 8 };*/
 9 class Solution {
10 public:
11     ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
12         if(pListHead==NULL) return NULL;
13         if(k==0) return NULL;
14         ListNode* endnode=pListHead;
15         ListNode* resnode=pListHead;
16         k--;
17         while(k!=0){
18             if(endnode->next!=NULL){
19                 endnode=endnode->next;
20             }
21             else 
22                 return NULL;
23             k--;
24         }
25         while(endnode->next!=NULL){
26             endnode=endnode->next;
27             resnode=resnode->next;
28         }
29         return resnode;
30     
31     }
32 };

 

posted @ 2015-08-25 18:20  鸭子船长  阅读(149)  评论(0编辑  收藏  举报