首页 > 其他分享 >JZ18删除表的节点

JZ18删除表的节点

时间:2024-04-13 20:11:52浏览次数:25  
标签:p2 head ListNode val 删除 JZ18 next 节点

image
image

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @param val int整型 
     * @return ListNode类
     */
    ListNode* deleteNode(ListNode* head, int val) {
        // write code here

        //思路:设置一个循环,挨个遍历链表的节点,对比节点的值和要查找的值是否相等,
        //如果相等,就删除该节点
        //如果找到最后都没找到,就直接返回该链表

        //先判空
        if(head == NULL )       //如果头节点为空,就直接返回空指针
            return nullptr;
        if(head ->next ==NULL)  //如果第二个节点为空,就判断头节点是否为val值
        {
            if(head ->val == val)
                return nullptr;
            else
                return head;
        }
        
        //怎么删除节点?
        //设置一个额外的指针,让这个指针指向该节点的下一个节点
        //然后进行删除操作
        ListNode* p1 = head;    //p1指向head
        ListNode* p2 = head->next;    //让p2指向head的下一个节点
        
        //循环遍历对比val值
        while (p2) {
            if(p1->val == val)  //如果头节点等于val值
            {
                return p2;
            }
            if(p2->val == val)  //如果p2指向val值
            {
                p1 ->next = p2->next;
            }
            //p1 p2往后移动
            p1 = p1->next;  
            p2 = p2->next;
        }
        return head;
    }
};

标签:p2,head,ListNode,val,删除,JZ18,next,节点
From: https://www.cnblogs.com/H43724334/p/18133309

相关文章

  • 2-77. 修正 CropGenerator 和 AStar 地图节点生成
    修复Bug可以看到房子的上面生成了一棵树修改CropGenerator修改AStar我不太理解,反正照着改就算了吧项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240413_1246......
  • cmd删除命令
    前言在windows下的命令行指令中,删除文件和删除文件夹是两个不同的操作;可以用win+r命令打开cmd窗口试一试。一、删除文件命令【谨慎操作】del或者erase是windows下删除文件的命令,命令不区分大小写,帮助文档如下:[](javascript:void(0)......
  • JZ22 链表中倒数最后k个节点
    /***structListNode{* intval;* structListNode*next;* ListNode(intx):val(x),next(nullptr){}*};*/classSolution{public:/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可***@param......
  • JZ52 两个链表的第一个公共节点
    /*structListNode{ intval; structListNode*next; ListNode(intx): val(x),next(NULL){ }};*/#include<endian.h>classSolution{public: //返回类型为节点指针类型,传入的是两个链表的头节点ListNode*FindFirstCommonNode(ListNode*pHead1,......
  • C++,文件,文件夹操作,创建、删除、检测
     推荐 filesystem,特别好用,除了新建、删除、复制、移动文件夹,还支持磁盘空间检测,权限检测,路径处理。 一、使用系统库//检测文件,检测文件夹/*windows*头文件:io.h*函数:intaccess(constchar*_Filename,int_AccessMode);**_AccessMode参数说明:00表示只判断......
  • 数据库物理删除和逻辑删除的区别 ?
    一、主要区别:物理删除和软删除是数据库中常见的两种数据删除方式,它们的主要区别在于数据的处理方式和是否永久删除数据。 二、概念:物理删除:物理删除是指从数据库中彻底删除数据,包括数据记录和关联的索引等,使其完全消失。物理删除释放了存储空间,并且被删除的数据无法再......
  • Linux服务器文件删除恢复方法XFS篇
    XFS文件系统文件被删除后,可以使用xfs_undelete工具进行恢复。值得注意的是:XFS文件系统的特性,文件删除后文件名即丢失,哪怕能恢复数据,文件名也恢复不了,所以在恢复之前一定要知道文件类型,最好还要知道创建时间、文件大小等信息,知道的越多越容易恢复。接下来安装xfs_undelete工具,以......
  • VSCode 如何删除无用的语言格式?
    1.情景展示在VisualStudioCode当中,支持很多语言格式。但问题在于,我只是将它当做NotePad++的替代品。当我通过Ctrl+N新建一个文件,并将指定的代码拷贝到VSCode中后,由于默认开启了自动检测语法功能。VSCode总是将java代码识别成Groovy语言,真他妈离谱。如何解决这个问题?2.......
  • 2-70. 核心功能评估周围节点得到最短路径
    修改AStar项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240412_1338......
  • 2-69. 根据每个地图信息生成节点信息
    创建AStar脚本修改GridMapManager修改AStar脚本再写BuildPath方法再写FindShortestPath方法项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240412_1305......