题解 | #删除链表的倒数第n个节点#

删除链表的倒数第n个节点

http://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6

快慢指针。删除链表倒数第n个节点。

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param n int整型 
     * @return ListNode类
     */
    public ListNode removeNthFromEnd (ListNode head, int n) {
            //方法二:快慢指针
    if (head == null || head.next == null) return null;
    ListNode runner = head,chaser = head;//快慢指针
    while (n > 0){//让快指针前进n步
        runner = runner.next;
        n--;
    }
    if (runner == null) {//如果快指针已经为空,说明头结点即为待删除的结点
        return head.next;//直接返回头结点的下一个结点
    }
    while (runner.next != null){//快慢指针同时后移,直到快指针下一结点为空时停下
        runner = runner.next;
        chaser = chaser.next;
    }
    chaser.next = chaser.next.next;//此时慢指针的后继结点刚好是待删除的结点
    return head;
    }
}
全部评论

相关推荐

不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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