找出单链表的倒数第k个节点

来源:互联网 发布:阳光灿烂的日子知乎 编辑:程序博客网 时间:2024/05/16 04:40

首先需要对单链表进行检查,判断是否为空链表;
判断k的值是否合理;
k的值是否大于链表的长度,k的值是否为0。

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==NULL || k==0)            return NULL;        ListNode *p=pListHead;        ListNode *q=pListHead;        int len=0;        while(p!=NULL){            p=p->next;            len++;        }        if(len<k)            return NULL;        p=pListHead;        for(int i=0;i<k;i++){            p=p->next;        }        while(p!=NULL){            p=p->next;            q=q->next;        }        return q;    }};
原创粉丝点击