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

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

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

public static ListNode removeNthFromEnd (ListNode head, int n) {

        if (getLength(head) == n){
            head = head.next;
            return head;
        }

        ListNode p = head, q = head;
        int i = 0;

        // 找出前后两个游标之间的距离 == n,然后连个游标不断往后移动,直到后面的游标的next为null停止
        while (i < n){
            q = q.next;
            i++;
        }

        while (q.next != null){
            q = q.next;
            p = p.next;
        }
        p.next = p.next.next;
        return head;

    }

    public static int getLength(ListNode head){
        int i = 0;
        ListNode p = head;
        while (p != null){
            i++;
            p = p.next;
        }
        return i;
    }
全部评论

相关推荐

饿魔:看到在线简历了吧
点赞 评论 收藏
分享
不知道怎么取名字_:两个方向 1.简历针对性准备下 2.面试前也需要准备的 主要还是要看各个公司需求,看公司行业和岗位描述,那里面已经写了对技术的需求,一份简历,不可能和所有嵌入式岗位都匹配的
投递北京经纬恒润科技股份有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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