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

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

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

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param n int整型 
     * @return ListNode类
     */
    public ListNode removeNthFromEnd (ListNode head, int n) {
        if (head == null || n == 0) return head ;
        ListNode pre01 = new ListNode(-1) ;//根节点(可以消除对根节点被删除的情况)
        pre01.next = head ;
        ListNode fast = pre01 ;
        int i = 1 ;
        while(i <= n) {
            fast = fast.next ;
            i ++ ;
            if(fast == null) {
                return null ;
            }
        }
        ListNode slow = head ;//slow最终为待删除的节点
        ListNode slow_pre = pre01 ;//slow_pre最终为slow的前一个节点
        while(fast.next != null) {
            slow_pre = slow ;
            slow = slow.next ;
            fast = fast.next ;
        }
        slow_pre.next = slow_pre.next.next ;
        return pre01.next ;
        
    }
}

一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

风的叶脉:不知道但我想要鞭打你( '-' )ノ)`-' ) 加油
点赞 评论 收藏
分享
只有一个苍穹外卖外加正在看黑马点评,可以找小厂实习吗,还有我的简历有什么大问题吗
Java抽象小篮子:感觉有点熟悉,问题1是学历,2是没实习经历,3是专业技能写得太少太少了(怎么写可以看我置顶帖),4是仅这一个项目找实习不够看。拷打完毕,简历怎么写可以看我置顶帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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