Sunday, August 31, 2014

Remove Nth Node from End of List

Problem

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.

  • Idea

    • 创建一个node 使得node->next = head
    • 创建两个指针frontP和rearP,初始值都为node
    • 先让rearP往前移动n次,然后再同时移动frontP和rearP,直到rearP到的链表尾
    • 这时frontP->next就是你要删除的节点了

    Solution


    No comments:

    Post a Comment