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

链表中倒数最后k个结点

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

思路
经典双指针题目,leftPoint指向第一个节点,rightPoint指向第k个节点,左右指针相距k-1个身位,使用rightPoint去寻找尾节点,当寻找到尾节点时,那么leftPoint指向的节点便是倒数第k个节点了。

结果
运行时间:16ms
占用内存:10828KB

代码

 public ListNode FindKthToTail (ListNode pHead, int k) {
        ListNode leftPoint = pHead;
        ListNode rightPoint = pHead;
        if (k <= 0) return null;
        for (int i = 0; i < k - 1; i++) {
            if (rightPoint == null ||
                    rightPoint.next == null){
                return null;
            }
            rightPoint = rightPoint.next;
        }

        while (rightPoint.next != null){
            rightPoint = rightPoint.next;
            leftPoint = leftPoint.next;
        }


        return leftPoint;
    }
全部评论

相关推荐

12-06 16:17
济宁学院 Java
点赞 评论 收藏
分享
11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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