package LeetCode_LinkedList; /**题目: * Given a linked list, remove the n-th node from the end of list and return its head. * 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. * Follow up: * Could you do this in one pass? */ public class RemoveNthFromEnd { public ListNode RemoveNthFromEnd(ListNode head,int n){ ListNode result = new ListNode(0); result.next = head; ListNode first = result; ListNode second = result; for (int i = 1; i <= n+1; i++) { first = first.next; } while (first != null) { first = first.next; second = second.next; } second.next = second.next.next; return result.next; } public static void main(String[] args) { ListNode node1 = new ListNode(1); ListNode node2 = new ListNode(2); ListNode node3 = new ListNode(3); ListNode node4 = new ListNode(4); ListNode node5 = new ListNode(5); node1.next = node2; node2.next = node3; node3.next = node4; node4.next = node5; RemoveNthFromEnd test = new RemoveNthFromEnd(); ListNode result = test.RemoveNthFromEnd(node1,2); while (result != null) { System.out.print(result.val + " "); result = result.next; } } }
LeetCode:Remove Nth Node From End Of First(java)
最新推荐文章于 2022-10-29 13:05:33 发布