温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

剑指offer之面试题15 :链表中倒数第k个结点

发布时间:2020-07-11 23:59:01 来源:网络 阅读:344 作者:momo462 栏目:编程语言

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

思路:

两个指针,两个指针距离k个结点,当走在前面的指针已经走到NULL,后面的指针刚好走到倒数第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) 
    {
        //边界条件1:pListHead指向空即为空链
        //边界条件2:k<=0,倒数的大小为正
        if(pListHead==NULL||k<=0)
        {
            return NULL;
        }
    	ListNode* pcur1=pListHead;
        ListNode *pcur2=pListHead ;
        while(k>0)
        {
            k--;
            //边界条件3:链表不够长,没有倒数第k个结点
            if(pcur1!=NULL)
            {
               pcur1=pcur1->next; 
            }
            else
            {
                return NULL;
            }
        }
        while(pcur1!=NULL)
        {
            pcur1=pcur1->next;
            pcur2=pcur2->next;
        }
        return pcur2;
    }
};




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI