Leetcode:19. Remove Nth Node From End of List

JerryXia 发表于 , 阅读 (41)

2.解法二(Dante:Java)

我第一反应想出来的方法,最初有一些边界值没考虑到位,被Leetcode干掉了,然后加了一个头指针就解决了。

大致思路就是有两个指针fast和slow,fast比slow的位置早n个,然后开始循环,当slow指向最后一个元素的时候,slow就找到了该被删除的元素。

public class Solution {    public ListNode removeNthFromEnd(ListNode head, int n) {        ListNode start = new ListNode(0);        ListNode slow = start, fast = start;        slow.next = head;        for(int i=1; i<=n+1; i++)   {            fast = fast.next;        }        while(fast != null) {            slow = slow.next;            fast = fast.next;        }        slow.next = slow.next.next;        return start.next;    }}

2016-08-10 22:21:19 hzct

作者:dantezhao | 简书 | CSDN | GITHUB 文章推荐:http://dantezhao.com/readme 个人主页:http://dantezhao.com 文章可以转载, 但必须以超链接形式标明文章原始出处和作者信息