本文共 1086 字,大约阅读时间需要 3 分钟。
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.Java代码:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { int len =1; ListNode tmp =head; ListNode tmp_2; while(tmp.next != null){ tmp = tmp.next; len++; } if(n==len){ tmp_2 = head.next; head.next=null; return tmp_2; } len=len-n-1; if(len<0)return null; tmp =head; while(len>0){ tmp=tmp.next; len--; } tmp_2 = tmp.next; tmp.next=tmp.next.next; tmp_2.next=null; return head; }}
转载地址:http://mjuni.baihongyu.com/