给定一个链表,删除链表的倒数第n个节点并返回链表的头指针

it2023-10-03  64

给定一个链表,删除链表的倒数第n个节点并返回链表的头指针

public ListNode removeNthFromEnd (ListNode head, int n) { //如果n小于等于0直接输出头结点吧 if(n<=0){ return head; } //接下来的n全都是大于0的值 //考虑到可能删除头结点所以搞一个头结点还之前的一个,接下来的操作就方便多了, //该怎么删除怎么删除,因为不可能删除咱们新添的节点 ListNode node=new ListNode(0); node.next=head; ListNode first=node; ListNode second=node; for(int i=0;i<n;i++){ second=second.next; //如果这个n比链表长度还长,直接输出头结点吧 //这个操作判断完就在也不用判断n了,能通过的都是合法数值 if(second==null){ return head; } } //下面使first到达待删除节点之前一个节点,second到达尾结点 while(second.next!=null){ first=first.next; second=second.next; } first.next=first.next.next; return node.next; }
最新回复(0)