LeetCode 热题100 19. 删除链表的倒数第N个节点

打印 上一主题 下一主题

主题 580|帖子 580|积分 1740

题目:
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例:
(图源:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/)
 
解析:
其实一般思路就是找到要删除的节点temp,再找到该节点的前一个节点pre,做好pre.next = temp.next即可。
一个特判就是,如果删除的链表的第一个结点,那么直接返回head.next即可。
代码:
[code] 1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode() {} 7  *     ListNode(int val) { this.val = val; } 8  *     ListNode(int val, ListNode next) { this.val = val; this.next = next; } 9  * }10  */11 class Solution {12     public ListNode removeNthFromEnd(ListNode head, int n) {13        int counter = 0;14         ListNode tmp=new ListNode();15         ListNode pre=new ListNode();16         tmp = head;17         while(tmp!=null){18             counter++;19             tmp=tmp.next;20         }21         if(counter==n){22             return head.next;23         }24         else{25             tmp = head;26             for(int i=0;i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表