LeetCode 删除链表的倒数第N个结点

对于这种可能会删除头结点的题目:
1.先创建一个虚拟头结点dummy,再用头指针指向头结点
2.返回值为: dummy.next
3.这样不用考虑多种情况:删除的是不是头节点
java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        List<Integer> arr=new ArrayList<Integer>();
        ListNode p=head;
        while(p!=null){
            arr.add(p.val);
            p=p.next;
        }
        int flag=arr.size()-n;
        ListNode dummy=new ListNode(-1);  //虚拟头结点,这样可以不用考虑是否删除的是第一个结点
        ListNode prev=dummy; //头指针指向头结点 
        prev.next=head;

        for(int i=0;i<flag;i++){
            prev=prev.next;
        }
        prev.next=prev.next.next;
        return dummy.next;

    }
}
相关推荐
SweetCode15 小时前
【无标题】
开发语言·c++·算法
shughui15 小时前
Python基础面试题:语言定位+数据类型+核心操作+算法实战(含代码实例)
开发语言·python·算法
王老师青少年编程16 小时前
信奥赛C++提高组csp-s之拓扑排序详解
c++·算法·拓扑排序·csp·信奥赛·csp-s·提高组
kaikaile199516 小时前
matlab计算流场
人工智能·算法·matlab
老鼠只爱大米16 小时前
LeetCode算法题详解 42:接雨水
leetcode·动态规划·双指针·单调栈·接雨水·雨水收集
3GPP仿真实验室16 小时前
【Python源码】6G:PyTorch OFDM 教学仿真平台
算法
xie_pin_an16 小时前
C++ 从入门到进阶:核心知识与实战指南
java·c++·算法
我是个菜鸡.16 小时前
多模态算法面经准备
算法
AlenTech16 小时前
739. 每日温度 - 力扣(LeetCode)
算法·leetcode·职场和发展