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

链表中倒数最后k个结点

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

/**
 * struct ListNode {
 *  int val;
 *  struct ListNode *next;
 * };
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param pHead ListNode类
 * @param k int整型
 * @return ListNode类
 */
/*
我的方法比较笨。
学习:刚刚看到一个比较巧妙的,使用快慢指针,先让快指针先移动k,然后慢指针和快指针同时移动保证相差k个距离,然后当快指针指向null时候,也就找到了
*/
struct ListNode* FindKthToTail(struct ListNode* pHead, int k ) {
    //方法一:
    //遍历长度
    //比较k
    //再遍历一遍

    struct ListNode* tmp = pHead;
    int i = 1;
    if (pHead != NULL) {
        while (tmp->next != NULL) { //没有指向最后一个
            i++;
            tmp = tmp->next;
        }
    }
    if (k > i) {
        tmp = NULL;
    } else {
        k = i - k;
        i = 1;
    }
    //找到指针
    if (tmp != NULL) {
        tmp = pHead;
        for (i = 1; i <= k; i++) {
           tmp=tmp->next;
        }
    }
    return tmp;
}





全部评论

相关推荐

06-11 14:15
已编辑
门头沟学院 后端
田心今心:打招呼改一下,把实习半年以上随时到岗放第一行,因为ssob的hr不点击看的时候只能看前面几个字,你前面几个字hr获取不到什么信息,也就不会点进来看
点赞 评论 收藏
分享
06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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