链表中倒数第 k 个结点

链表中倒数第k个结点

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

单指针法

public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        ListNode cur = head;
        int len = 0;
        // 计算出链表长度
        while(cur != null){
            cur = cur.next;
            len++;
        }

        // 1 表示 cur 从第一位开始遍历
        int i = 1;
        cur = head;
        // 注意 null 的判别,如果输入不合法的 k 可能会越界
        while(cur != null && i != len - k + 1 ){ // 倒数第 k 个就是正数第 len - k + 1 个 
            i++;
            cur = cur.next;
        }

        return cur;
    }
}

快慢指针法

public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {

        // k 必须是大于 0 的(倒数第 0 个数 没听说过把 -_-)
        if(head == null || k <= 0){
            return null;
        }

        ListNode fast = head;
        ListNode slow = head;

        // 快指针先走 k - 1  步
        while((fast != null) && (k - 1 > 0)){
            k--;
            fast = fast.next;

            // k 的取值范围是 1 ~ len(链表长度)
            // 所以 fast 走的步数就是 0 ~ len - 1
            // 当 fast == null 时,fast 走了 len 步
            // 正常情况下,所以 fast 是不能等于 null 的
            if(fast == null){
                return null;
            }
        }

        // 当 快指针为 null 时,slow 走到到数第 k 个结点
         while(fast.next != null){
             fast = fast.next;
             slow = slow.next;
         }

        return slow;
    }
}
全部评论

相关推荐

2025-12-22 16:31
已编辑
桂林电子科技大学 Python
很奥的前端仔:如果你接了offer 临时又说不去 hr确实要多做一些工作。 当然如果是接offer之前当我没说
点赞 评论 收藏
分享
2025-12-01 16:35
内蒙古工业大学 Java
上个月实习了7天被开,哎想起来真窝囊,领导叫我去会议室,问我技术栈,当时紧张的,问我有没有做项目啥的,我说没有,有练习,其实我也是做过两个项目的但是,当时紧张的说不出来,就说会java,springboot,我没好好看系统,就说系统是增删改查,他让我回去再看,说熟悉完再看走开发路线还是实施什么的路线,3天后问我,我说这是一个审批系统,其实也不是,是一个检测系统,主要流程是委托&nbsp;&nbsp;受理然后&nbsp;样品管理&nbsp;报告管理&nbsp;审核啥的&nbsp;。然后问我你觉得系统的好处是啥,忘了当时咋说的了,让我回去再熟悉一下。第二周也没安排任务,没有配电脑,然后周二,我当时企业微信没看,和朋友聊天呢,然后他发了任务一个小时之后我才看到,然后我回复的时候是3点半,未读过了一会儿hr给我叫到小黑屋,说觉得不合适,然后让我填离职表。后来想想一开始要是自信点是不是就能配电脑然后开发了。租的房子转租也没租出去,该交房租了,好在当时是月付,没有选择季付,不然哭都没地方。又回到基地了,好久没学了,有时候我也在想为啥我这么消极,这么不自信,哎,面试什么的也挂了好多了。昨天我妈和我打电话说他年前体检就检查出来脸上骨头里面有囊肿,手术很复杂,说要经过鼻子,医生说手术之后容易感染,他老是头疼,我现在在实训基地,离家好远,我爸也有事,我妈说要不拖到我姐放假回去得1月。不知不觉这么多字了,现在是12.1下午4.20,刚面试完胜软,感觉躺平已经成了口头禅了,想离家远一点,但是每个月还是会问家里要生活费,教室和宿舍还是那样,但是不知为何,我总有一种物是人非的感觉,上厕所和接水要去四楼,我们之前的教室就在四楼,路过教室的时候总有一种恍惚的感觉。网上说高敏感是种天赋,我却感觉老是很痛苦,总是能听出一些弦外之音,可能人家也不是那个意思。我也不知道要表达啥了在都是大佬都群里面,默默的看着他们的发言,遇到问题找大佬解决,但是没有利益交换,大佬也会觉得厌烦的。焦虑什么的是能力跟不上欲望,每天一边郁郁寡欢一遍暴饮暴食,总是希望别人能关心一下自己,但自己也不常关心别人。之前一个大佬给我内推,但是我力扣也没刷都不好意思面试,发了两次面试通知我也没面。就到这里吧,毕业设计题目出来了,先学一下黑马的springboot3vue3全栈吧。
_mos_:别的不多说 就你上班聊天摸鱼整整一个小时不看信息我都觉得很抽象了别扯什么自己这那的 我感觉领导确实已经给你很多时间和空间了 自己还是想想有没有真的用心去做 不是什么东西都要别人推着你去干的 总得学会主动一点吧 最后中肯地说一句 卷不了还是别走互联网这条路了 不好意思说话有些直白但希望你可以明白我的意思
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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