当前位置:网站首页>每日一题-删除链表的倒数第 N 个结点-0718
每日一题-删除链表的倒数第 N 个结点-0718
2022-08-05 05:17:00 【菜鸡程序媛】
题目
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
思路
- 首先链表的问题,都要想一下,是否需要哨兵。比如此题,如果不设置哨兵的话,删除链表的头节点,就会导致找不到链表了。
- 本题解法就是两个指针,一个走到底,判断走了多少步,val++;另一个指针再走,边走val边,直到等于n的时候就不能再走了。相见下图
代码
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
if(head == null)
return null;
//有个站岗的 别把链表弄丢了
ListNode pre = new ListNode(-1);
pre.next = head;
ListNode left = pre;
ListNode right = pre;
int val = 0;
while(right.next != null){
right = right.next;
val ++; //=5
}
while(val -- != n){
left = left.next;
}
//left表示的是最左面的节点
left.next = left.next.next;
return pre.next;
}
}
边栏推荐
猜你喜欢
随机推荐
IT系统运行维护方法及策略
十、视图解析原理与源码分析
LeetCode刷题之第23题
单变量线性回归
HuiFer 带你读懂 BeanFactory getBean 方法
读论文- pix2pix
多边形等分
基于STM32F407的WIFI通信(使用的是ESP8266模块)
Polygon计算每一个角的角度
Leetcode刷题——对链表进行插入排序
【UiPath2022+C#】UiPath变量和参数
framebuffer应用编程及文字显示(2)
常用 crud 的思考和设计
1004 成绩排名 (20 分)
SQL(1) - Add, delete, modify and search
四、Web场景之静态资源配置原理
【论文阅读-表情捕捉】ExpNet: Landmark-Free, Deep, 3D Facial Expressions
C语言联合体union占用空间大小问题
Redis设计与实现(第一部分):数据结构与对象
C语言入门笔记 —— 分支与循环