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;

    }
}
相关推荐
z2005093018 分钟前
每日简单算法题——————跟着卡尔
算法
️是781 小时前
信息奥赛一本通—编程启蒙(3395:练68.3 车牌问题)
数据结构·c++·算法
Liangwei Lin2 小时前
LeetCode 118. 杨辉三角
算法·leetcode·职场和发展
计算机安禾2 小时前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
鼠鼠我(‘-ωก̀ )好困2 小时前
leetGPU
算法
我星期八休息2 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
池塘的蜗牛2 小时前
A Low-Complexity Method for FFT-based OFDM Sensing
算法
故事和你913 小时前
洛谷-【图论2-1】树5
开发语言·数据结构·c++·算法·动态规划·图论
咖啡里的茶i3 小时前
视觉显著目标的自适应分割与动态网格生成算法研究
人工智能·算法·目标跟踪
paeamecium3 小时前
【PAT甲级真题】- String Subtraction (20)
数据结构·c++·算法·pat考试·pat