您的位置:首页 > Web前端 > Node.js

Remove Nth Node From End of List leetcode java

2016-07-20 20:14 537 查看
视频讲解  http://v.youku.com/v_show/id_XMTY1MTMzNjAyNA==.html

(1)定义两个指针

    ListNode fast = head;

    ListNode slow = head; 

(2)将快指针向前移动N步

(3.1)判断此时快指针是否已经到达尽头,如果是,头节点就是要删除的节点,返回head.next。

 

(3.2)将快慢两个指针同时以相同的速度往前移动,当快指针走到尽头的时候,慢指针的下一个位置就是倒数第N个节点,将慢指针next指向next.next.

public class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {

ListNode fast = head;
ListNode slow = head;

for(int i=0;i<n;i++){
fast = fast.next;
}

if(fast == null){
head = head.next;
return head;
}

while(fast.next != null){
fast = fast.next;
slow = slow.next;
}

slow.next = slow.next.next;
return head;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode