常考数据结构与算法:删除链表的倒数第n个节点
生活随笔
收集整理的這篇文章主要介紹了
常考数据结构与算法:删除链表的倒数第n个节点
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
給定一個(gè)鏈表,刪除鏈表的倒數(shù)第n個(gè)節(jié)點(diǎn)并返回鏈表的頭指針
例如,
備注:
題目保證n一定是有效的
請(qǐng)給出請(qǐng)給出時(shí)間復(fù)雜度為O(n)的算法
?
雙指針
public class RemoveNthFromEndMe {public static void main(String[] args) {RemoveNthFromEndMe removeNthFromEndMe = new RemoveNthFromEndMe();ListNode l1 = new ListNode(1);ListNode l2 = new ListNode(2);ListNode l3 = new ListNode(3);ListNode l4 = new ListNode(4);ListNode l5 = new ListNode(5);ListNode l6 = new ListNode(6);l1.next = l2;l2.next = l3;l3.next = l4;l4.next = l5;l5.next = l6;removeNthFromEndMe.removeNthFromEnd(l1,2);}/**** @param head ListNode類* @param n int整型* @return ListNode類*/public ListNode removeNthFromEnd (ListNode head, int n) {if(null == head){return null;}ListNode pre = head;ListNode post = head;// 1 2 3 4 5 6int index = 0;while(index < n){pre = pre.next;index++;}while(null != pre && pre.next != null){post = post.next;pre = pre.next;}if(null == pre){head = post.next;}else {post.next = post.next.next;}return head;} }?
?
總結(jié)
以上是生活随笔為你收集整理的常考数据结构与算法:删除链表的倒数第n个节点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常考数据结构与算法:找到字符串的最长无重
- 下一篇: 常考数据结构与算法:在二叉树中找到两个节