题解 | #链表中倒数最后k个结点# 双指针

链表中倒数最后k个结点

https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

import java.util.*;

public class Solution {
    /**
     * 	思路:双指针法
	 *	设置两个节点指向头结点,可以让p2先走k步,再让p1和p2同时走,当p2走到链表尾部的时候,
	 *	p1,就是链表倒数第k个节点,直接返回即可
	 *	这里考虑k可能超出范围,只需判断p2是否为null,就是是否会超出链表尾部
	 *	如果超出,直接返回null即可
     *
     * @param pHead ListNode类
     * @param k int整型
     * @return ListNode类
     */
    public ListNode FindKthToTail (ListNode pHead, int k) {
        ListNode p1 = pHead;
        ListNode p2 = pHead;

        int c = 0;
        while(c < k){
           if(p2 == null){
                return null;
            }
            p2 = p2.next;
            c++;
        }
        while(p2 != null){
            p1 = p1.next;
            p2 = p2.next;
        }
        return p1;

    } 
}

全部评论

相关推荐

不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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