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

Posted 仅供记录,日常灌水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构算法 LinkList (Remove Nth Node From End of List)相关的知识,希望对你有一定的参考价值。

删除链表中倒数第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)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构算法 LinkList (Insertion Sort List 链表插入排序)

ArrayList && LinkList

LeetCode算法题-Remove Duplicates from Sorted List

数据结构算法 LinkList (Add Two Numbers)

C数据结构获取链表长度

cpp的stl有linklist吗