首页 > 其他分享 >删除链表给定值

删除链表给定值

时间:2024-05-15 11:34:02浏览次数:9  
标签:head 删除 val next 链表 给定 cur

今天是我坚持刷题的第二天,加油!

删除链表给定值

输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} val
 * @return {ListNode}
 */
var deleteNode = function(head, val) {
    // 要删除的是头结点
    if (head && head.val == val) {
        return head.next
    }
    let cur = head,
        prev = null    
    while (cur.val !== val) {
        prev = cur
        cur = cur.next
    }
    prev.next = cur.next
    return head
};

思路

  1. 要删除的节点是头
  2. 要删除的节点不是头
    指针来到第一个不是要删除节点的位置, 因为可能头节点就是要删除的节点
    然后prev记录当前索引,走到最后,就把给定的指删完了, 返回链表头

标签:head,删除,val,next,链表,给定,cur
From: https://www.cnblogs.com/kelanmonkperson/p/18193508

相关文章

  • jquery使用$.grep删除数组中的某个值
    vararr=[1,2,3,4,5];varvalueToRemove=3;//方法1:使用$.grep()方法arr=$.grep(arr,function(value){returnvalue!=valueToRemove;});console.log(arr);//[1,2,4,5]//方法2:使用Array.prototype.filter()方法(纯JavaScript)arr=arr.fi......
  • C# WinForm 解除资源文件的占用并删除
    1.删除未解除占用的资源时2.调用WindowsAPI函数解除文件占用[DllImport("kernel32.dll",SetLastError=true)][return:MarshalAs(UnmanagedType.Bool)]staticexternboolCloseHandle(IntPtrhObject);[DllImport("kernel32.dll"......
  • 反转链表
    最近想认真学一下数据结构和算法,之前也学过,不过学一段时间就不当回事了,这次争取好好学一段时间,今天是第一天,我准备一天刷一道leetcode题,简单,中等,难都行,主要是建立一个习惯。加油!反转链表/***Definitionforsingly-linkedlist.*publicclassListNode{*intval......
  • 【编译原理】根据给定文法,用C/C++语言编写Translation Schema,执行程序并给出结果
    任务描述本关任务:根据给定文法,用C/C++语言编写TranslationSchema,执行程序并给出结果相关知识为了完成本关任务,你需要掌握:TranslationSchema相关方法理论C/C++编程语言基础C语言的基本结构知识TranslationSchema在动手设计之前,你应该先做好TranslationSchema的相关......
  • sqlserver 亿级数据删除方案
    sqlserver删除百万级别及以上数据的时候需要考虑是否需要保留日志文件,如果需要保留日志文件,用于恢复。那么就要使用DELETE语句进行删除,DELETE删除语句尽量使用主键或者索引的字段,同时进行批量删除语句如下:1DECLARE@BatchSizeINT2SET@BatchSize=10000--设置每批删......
  • 文件删除后空间未释放
    文件删除后空间未释放   第一步:找到处于delete状态的较大的文件,以及使用进程lsof|grep-idelete|sort-nrk7|head|awk'BEGIN{print"file-size","PID","system"}{print$7/1024/1024"M",$2,$9}'|column-t  删除这个进程,然后重新启动即可,这个是进程占......
  • Linux 中删除某一目录中所有 以数字命令的文件或者文件夹
      在一些场景下,会遇到指定目录中出现大量的以数字命名的文件或者目录,如何实现批量删除:001、[root@PC1test2]#ls##测试文件及目录,如何删除所有的以数字命名的文件和目录120297489a.txtb.txtdir11[root@PC1test2]#rm-rf{1..100......
  • Oracle 删除千万级数据量时,可以考虑以下方法来提高删除效率
    Oracle删除千万级数据量时,可以考虑以下方法来提高删除效率:分批删除:如果需要删除的数据量非常大,可以考虑分批进行删除。sqlDELETEFROMyour_tableWHEREyour_conditionANDrownum<=10000;COMMIT;使用直接路径删除:直接路径删除会绕过常规的SQL解析和绑定,可以减少删除操......
  • 代码随想录算法训练营第四天 | 23.两l两交换链表中的节点 19.删除链表的倒数第N个节点
    23.两两交换链表中的两个节点题目链接文章讲解视频讲解时间复杂度o(n)空间复杂度o(1)tips:画图,并将每一步操作用伪代码写出来,然后将代码理顺可以避免修改代码的麻烦初始化的时候就要将previous初始化为current的前一个节点,这样可以保证循环的第一步满足循环要求cla......
  • 【python】bilibili动态删除脚本
    importpprintimportrequestsimportjsonimportreimportos#最大删除条数MAX_COUNT=200#保存cookie的路径COOKIE_FILE_PATH=r"./cookie.txt"classBWebSite(object):def__init__(self):ifnotos.path.exists(COOKIE_FILE_PATH):print("未检测到cooki......