链表——求链表中倒数第k个节点

链表中倒数第k个结点

http://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a

思路:
①我第一次做这题,选择是将整个链表反转,再输出第k个,但是有个问题就“第k个节点”的意思是从第k个到最后的所有链表。
例:1->2->3->4的第二个节点是2->3->4。
所以反转链表不行,但是如果是求第k个节点的值,就没有问题了。
②采用快慢指针
这种方法以前在做求链表中间节点时遇到过。
设定两个指针,一个比另一个快k个,这样,当fast到达尾(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) {
       if(!pListHead||k<=0) return nullptr;
       ListNode* fast = pListHead;
        ListNode* slow = pListHead;
        while(k--)
        {
            if(fast)
            {
                fast=fast->next;
            }
            else
            {
                return nullptr;
            }
        }
        while(fast)
        {
            slow = slow->next;
            fast = fast->next;
        }
        return slow;

    }
};```
全部评论

相关推荐

点赞 评论 收藏
分享
Ryan188:我觉得你简历最核心的问题就是太大众化。 你要有一个认知就是,如果你是面试官,你是HR,其实他们每天都会收到非常多大量重复的像你这种简历。 就是说你的项目不是一个真实的上线的项目,可能是从网上学习而来的,或者是直接copy别人的项目,没有新意,没有展现出你自己对技术的思考,而且你的学历也不占优,自然而然就很难有人去选择你。 所以要做的实际上是差异化方向的工作,也就是“给我一个选择你的理由”,比如最近很火的ai,你可以写一个ai相关项目比如问答应用或者mcp编写或者agent搭建,需要你先花点时间学习,34天吧,展现你对这方面相较于其他人特有的思考; 或者写相关技术博客输出一些技术内容,有具体可以量化的成果等等去增加你的竞争力。 但以上这些都是后话,我去年在你这个时候也是没人理我,咱们双非学历也没实习,难找也正常,我当时整个3月份都没人鸟我,直到有个新招的岗位,很缺人很急,流程很快,所以我一下子进去了,所以运气方面也很重要,需要你一直坚持喝复盘,直到看到光明,加油兄弟
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务