牛客题霸NC53+删除链表的倒数第n个节点+Java题解
题目描述
给定一个链表,删除链表的倒数第n个节点并返回链表的头指针
(欢迎大家批评指正,讨论好的方法)
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ public ListNode removeNthFromEnd (ListNode head, int n) { int len = 0; ListNode p = head; ListNode reHead = head; while(p != null){ len++; p = p.next; } if(n == len){ reHead = head.next; head.next = null; return reHead; } int cha = len-n-1; ListNode temp = head; while(cha >0 ){ temp = temp.next; cha--; } temp.next = temp.next.next; return head; //这里回reHead 和head都可以,因为len不等于n时,head不变 } }