题目:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
输入:给定一个链表: 1->2->3->4->5, 和 n = 2.
输出:当删除了倒数第二个节点后,链表变为 1->2->3->5.
代码:
public class Test5 {
public ListNode removeNthFromEnd(ListNode head, int n) {
if (head.next==null) {
return null;
}
ListNode temp1 = head;
int length = 1;
while (head.next != null) {
head = head.next;
length++;
}
if (length==n) {
return temp1.next;
}
int size = length-n-1;
ListNode temp2 = temp1;
for (int i = 0; i < size; i++) {
temp2 = temp2.next;
}
temp2.next=temp2.next.next;
return temp1;
}
}
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}