19. Remove Nth Node From End of List

来源:互联网 发布:java redis 订阅发布 编辑:程序博客网 时间:2024/05/24 04:57

一,题目

Given a linked list, remove the nth node from the end of list and return its head.

For example,

   Given linked list: 1->2->3->4->5, and n = 2.   After removing the second node from the end, the linked list becomes 1->2->3->5.

Note:
Given n will always be valid.
Try to do this in one pass.

二,思路

快慢指针  .快指针比慢指针提前n个节点


三,代码

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


0 0
原创粉丝点击