码迷,mamicode.com
首页 > 编程语言 > 详细

【数据结构】算法 LinkList (Remove Nth Node From End of List)

时间:2018-03-07 23:55:31      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:style   结构   时间   位置   turn   倒数   一个   move   ==   

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

时间复杂度要控制在O(n)
Solution:
设置2个指针,一个用于确定删除节点的位置,一个用于计算倒数间距n。移动时保持2个指针同时移动。

 public ListNode removeNthFromEnd(ListNode head, int n) {
        if(head==null) return null;
        ListNode pre = head;
        ListNode cur = head; 
        for(int i=0;i<n;++i){
            cur = cur.next;
             if(cur==null)
            {
                return head.next;
            }
        }
        while(cur.next!=null){
            cur=cur.next;
            pre= pre.next;
        }
        pre.next = pre.next.next;
        return head;
    }

 

【数据结构】算法 LinkList (Remove Nth Node From End of List)

标签:style   结构   时间   位置   turn   倒数   一个   move   ==   

原文地址:https://www.cnblogs.com/dreamtaker/p/8525571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!