题解

链表中倒数第k个结点

http://www.nowcoder.com/questionTerminal/886370fe658f41b498d40fb34ae76ff9

在链表中:倒数的+顺数的长度等于链表总长度,所以可以设置两个指针,一个先走K步,剩下的到链表的末尾要走的步数就是倒数第k个节点,需要从头开始走的步数

public ListNode FindKthToTail (ListNode pHead, int k) {
        // write code here
        ListNode first = pHead;
        for(int  i= 0;i<k;i++){
            if(first == null) return first;
            first = first.next;

        }
        ListNode last = pHead;
        while(first!=null){
            first = first.next;
            last = last.next;
        }
        return last;
    }
}
全部评论
双指针同时前进,666
点赞
送花
回复
分享
发布于 2021-03-14 21:23
K万一大于节点数怎么办呢?
点赞
送花
回复
分享
发布于 2021-03-17 21:46
网易互娱
校招火热招聘中
官网直投
ListNode first = pHead 为什么可以这样使用?Phead不是定义方法时的参数吗?first是ListNode类的对象
点赞
送花
回复
分享
发布于 2021-03-29 11:09
聪明聪明
点赞
送花
回复
分享
发布于 2021-04-03 22:10
牛蛙牛蛙
点赞
送花
回复
分享
发布于 2021-04-13 10:13
ListNode* first = pHead;
点赞
送花
回复
分享
发布于 2021-04-23 16:42
可以,很强。
点赞
送花
回复
分享
发布于 2021-06-11 18:36
不理解题目意思
点赞
送花
回复
分享
发布于 2021-07-05 00:20
答主你好,我想问“倒数+顺数=链表总长”如何理解呢?
点赞
送花
回复
分享
发布于 2021-07-12 10:21
牛牛牛!
点赞
送花
回复
分享
发布于 2021-07-28 20:59

相关推荐

头像
04-29 10:53
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
92 3 评论
分享
牛客网
牛客企业服务