国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

我們一起學(xué)習(xí)刪除鏈表的節(jié)點

開發(fā) 前端
若 cur 指向某節(jié)點,則執(zhí)行 pre.next = cur.next ;若 cur 指向 nullnull ,代表鏈表中不包含值為 val 的節(jié)點。

[[436875]]

本文轉(zhuǎn)載自微信公眾號「程序員千羽」,作者程序員千羽。轉(zhuǎn)載本文請聯(lián)系J程序員千羽公眾號。

 Leetcode : https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof

“GitHub : https://gitee.com/nateshao/leetcode/blob/main/algo-notes/src/main/java/com/nateshao/sword_offer/topic_12_hammingWeight/Solution.java

刪除鏈表的節(jié)點

“題目描述: 給定單向鏈表的頭指針和一個要刪除的節(jié)點的值,定義一個函數(shù)刪除該節(jié)點。返回刪除后的鏈表的頭節(jié)點。示例 1:

  1. 輸入: head = [4,5,1,9], val = 5 
  2. 輸出: [4,1,9] 
  3. 解釋: 給定你鏈表中值為 5 的第二個節(jié)點,那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?nbsp;4 -> 1 -> 9. 

示例 2:

  1. 輸入: head = [4,5,1,9], val = 1 
  2. 輸出: [4,5,9] 
  3. 解釋: 給定你鏈表中值為 1 的第三個節(jié)點,那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?nbsp;4 -> 5 -> 9. 

解題思路:

本題刪除值為 val 的節(jié)點分需為兩步:定位節(jié)點、修改引用。

  • 定位節(jié)點: 遍歷鏈表,直到 head.val == val 時跳出,即可定位目標節(jié)點。
  • 修改引用: 設(shè)節(jié)點 cur 的前驅(qū)節(jié)點為 pre ,后繼節(jié)點為 cur.next ;則執(zhí)行 pre.next = cur.next ,即可實現(xiàn)刪除 cur 節(jié)點。

** 算法流程:**

  • 特例處理: 當應(yīng)刪除頭節(jié)點 head 時,直接返回 head.next 即可。
  • 初始化: pre = head , cur = head.next 。
  • 定位節(jié)點: 當 cur 為空 或 cur 節(jié)點值等于 val 時跳出。
    • 保存當前節(jié)點索引,即 pre = cur 。
    • 遍歷下一節(jié)點,即 cur = cur.next 。
  • 刪除節(jié)點: 若 cur 指向某節(jié)點,則執(zhí)行 pre.next = cur.next ;若 cur 指向 nullnull ,代表鏈表中不包含值為 val 的節(jié)點。
  • 返回值: 返回鏈表頭部節(jié)點 head 即可。

復(fù)雜度分析:

  • 時間復(fù)雜度 O(N): N為鏈表長度,刪除操作平均需循環(huán) N/2 次,最差 N 次。
  • 空間復(fù)雜度 O(1) : cur, pre 占用常數(shù)大小額外空間。
  1. package com.nateshao.sword_offer.topic_15_deleteNode; 
  2.  
  3. /** 
  4.  * @date Created by 邵桐杰 on 2021/11/21 16:22 
  5.  * @微信公眾號 程序員千羽 
  6.  * @個人網(wǎng)站 www.nateshao.cn 
  7.  * @博客 https://nateshao.gitee.io 
  8.  * @GitHub https://github.com/nateshao 
  9.  * @Gitee https://gitee.com/nateshao 
  10.  * Description: 刪除鏈表的節(jié)點 
  11.  */ 
  12. public class Solution { 
  13.     public static void main(String[] args) { 
  14.         ListNode listNode = new ListNode(3); 
  15.         int val = 3; 
  16.         ListNode node = deleteNode(listNode, val); 
  17.         System.out.println("node = " + node); 
  18.     } 
  19.  // 推薦 
  20.     public static ListNode deleteNode(ListNode head, int val) { 
  21.         if (head.val == val) return head.next
  22.         ListNode pre = head, cur = head.next
  23.         while (cur != null && cur.val != val) { 
  24.             pre = cur; 
  25.             cur = cur.next
  26.         } 
  27.         if (cur != null) pre.next = cur.next
  28.         return head; 
  29.     } 
  30.  
  31.     public void deleteNode(ListNode head, ListNode deListNode) { 
  32.         if (deListNode == null || head == null
  33.             return
  34.         if (head == deListNode) { 
  35.             head = null
  36.         } else { 
  37.             // 若刪除節(jié)點是末尾節(jié)點,往后移一個 
  38.             if (deListNode.next == null) { 
  39.                 ListNode pointListNode = head; 
  40.                 while (pointListNode.next.next != null) { 
  41.                     pointListNode = pointListNode.next
  42.                 } 
  43.                 pointListNode.next = null
  44.             } else { 
  45.                 deListNode.val = deListNode.next.val; 
  46.                 deListNode.next = deListNode.next.next
  47.             } 
  48.         } 
  49.     } 
  50.  
  51.     /** 
  52.      * 單指針實現(xiàn) 
  53.      * 
  54.      * @param head 
  55.      * @param val 
  56.      * @return 
  57.      */ 
  58.     public ListNode deleteNode2(ListNode head, int val) { 
  59.         if (head == nullreturn null
  60.         if (head.val == val) return head.next
  61.         ListNode cur = head; 
  62.         while (cur.next != null && cur.next.val != val) { 
  63.             cur = cur.next
  64.         } 
  65.         if (cur.next != null) { 
  66.             cur.next = cur.next.next
  67.         } 
  68.         return head; 
  69.     } 
  70.  
  71.     /** 
  72.      * 遞歸實現(xiàn) 
  73.      * 
  74.      * @param head 
  75.      * @param val 
  76.      * @return 
  77.      */ 
  78.     public ListNode deleteNode3(ListNode head, int val) { 
  79.         if (head == nullreturn null
  80.         if (head.val == val) return head.next
  81.         else head.next = deleteNode3(head.next, val); 
  82.         return head; 
  83.     } 
  84.  
  85.     public static class ListNode { 
  86.         int val; 
  87.         ListNode next
  88.  
  89.         ListNode(int x) { 
  90.             val = x; 
  91.         } 
  92.     } 

參考鏈接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/solution/mian-shi-ti-18-shan-chu-lian-biao-de-jie-dian-sh-2

 

責任編輯:武曉燕 來源: 程序員千羽
相關(guān)推薦

2023-03-28 07:32:37

2022-02-14 10:16:22

Axios接口HTTP

2021-05-19 10:37:16

WebFlux 前置工具

2021-05-20 07:15:34

RSA-PSS算法簽名

2022-12-01 09:59:57

內(nèi)核觀測性方法

2023-03-26 12:45:52

Linux內(nèi)核頭文件

2022-10-08 00:00:05

SQL機制結(jié)構(gòu)

2021-10-11 10:25:33

排列nums數(shù)組

2021-03-18 00:04:13

C# 類型數(shù)據(jù)

2017-01-22 15:09:08

架構(gòu)閉環(huán)演進

2023-04-26 07:30:00

promptUI非結(jié)構(gòu)化

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2021-08-27 07:06:09

DubboDocker技術(shù)

2023-08-04 08:20:56

DockerfileDocker工具

2022-10-18 07:33:57

Maven構(gòu)建工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2022-03-31 18:59:43

數(shù)據(jù)庫InnoDBMySQL

2023-06-30 08:18:51

敏捷開發(fā)模式

2023-09-10 21:42:31

2021-01-12 05:08:49

DHCP協(xié)議模型
點贊
收藏

51CTO技術(shù)棧公眾號

超碰在线免费播放| 欧美黑人3p| 日韩风俗一区 二区| 亚洲激情图片qvod| 久久久精品网| 亚洲永久视频| 国产乱妇无码大片在线观看| 日韩精品导航| 国产69精品久久久久按摩| 在线天堂资源| 黄色污网站在线观看| 亚洲一本大道| 亚洲爆乳无码专区| 乱熟女高潮一区二区在线| 亚洲欧美日韩国产成人综合一二三区| 成人亲热视频网站| 91久久精品美女高潮| 欧美激情精品久久久久久蜜臀 | 免费观看成人鲁鲁鲁鲁鲁视频| 免费看亚洲片| 成人手机电影网| 久久久国产午夜精品| 粉嫩久久99精品久久久久久夜| 99国产精品久久久久久久久久| 美腿丝袜亚洲色图| 一本久久青青| 久久久久毛片免费观看| 亚洲资源在线| 99久久人爽人人添人人澡| 精品999日本久久久影院| 中文字幕在线看片| av岛国在线| 成人自拍视频网| 中文字幕资源网在线观看免费| 久草在线视频资源| 欧美视频在线视频精品| 免费欧美激情| 成人中文视频| 蜜臀av一区二区| k8久久久一区二区三区| 亚洲精品xxxx| 欧美性生交片4| 精品日韩美女的视频高清| 欧美日本乱大交xxxxx| 久久影视电视剧免费网站清宫辞电视 | 99电影在线观看| 国产亚洲自拍偷拍| 日韩一区二区三区在线播放| 人妖精品videosex性欧美| aaa级精品久久久国产片| 欧美黑人xxxx| 欧美专区中文字幕| 欧美二区三区在线| 成人性视频欧美一区二区三区| 欧美日本韩国一区二区| 国模私拍一区二区国模曼安| 国产一区二区三区探花| 激情欧美一区二区三区在线观看| 亚洲最快最全在线视频| 欧美日本高清视频在线观看| 亚洲国产成人精品女人久久久 | 99久久国产免费免费| 视频在线观看成人| 欧美日韩不卡在线视频| 精品麻豆一区二区三区 | 国产成人一区| 成人黄色小视频在线观看| 日本道色综合久久| 亚洲**2019国产| 亚洲色婷婷久久精品av蜜桃| 中文字幕中文字幕在线中文字幕三区| 欧美电影h版| 欧美日韩精品一区二区视频| 国产成人在线视频免费播放| 亚洲第一区中文字幕| 成人免费观看网址| 青青草久久网络| 可以免费看的黄色网址| 午夜成在线www| 成人免费视屏| 亚洲一区二区三区免费| 午夜片欧美伦| 亚洲美女视频一区| 欧美精品欧美精品系列| 91精品国产综合久久小美女| 欧美大片顶级少妇| 麻豆蜜桃91| 69免费视频| 日本在线观看| 免费黄色在线看| 日韩av不卡一区| 亚洲免费在线播放| 欧美亚洲另类视频| 国产特级淫片免费看| 日韩最新av| 久久久久国产精品厨房| 日韩av最新在线| 国产一级特黄a大片99| 国产福利片在线| 一区二区三区午夜视频| 午夜影院久久久| 国产精品夜间视频香蕉| jizzjizzjizz亚洲| 亚洲一区二区三区日本久久九| 94色蜜桃网一区二区三区| 中文字幕亚洲无线码a| 99视频在线视频| 男人的天堂久久| 国产精品天干天干在线综合| 国产精品一区二区三区久久| 免费成人在线视频网站| 一本大道香蕉久在线播放29| 亚洲国产精品免费视频| 国产精品免费视频一区| 91在线免费观看网站| 四虎亚洲精品| 91丨porny丨首页| 91精品国产网站| 毛片在线免费| 影音先锋久久资源网| 欧美一区二区三区男人的天堂| 亚洲欧美日韩另类精品一区二区三区 | 成熟丰满熟妇高潮xxxxx视频| 亚洲国产精品免费视频| 亚洲午夜激情网页| 日韩成人av网站| 精品国产亚洲一区二区三区在线| 国产亚洲精品自拍| 精品国产伦一区二区三区观看方式| 午夜精品久久久久久久久久久久| 91成人综合网| 日韩av在线播放网址| 欧美成人激情免费网| 天天爽人人爽夜夜爽| 欧美少妇性xxxx| 亚洲福利视频网站| 免费男女羞羞的视频网站中文版| 99国产精品一区二区| 日韩电影中文 亚洲精品乱码| 成人看片app| 亚洲每日更新| 97人人做人人爱| 69成人在线| 亚洲国产成人tv| 97久久国产亚洲精品超碰热| 日韩一级淫片| 亚洲第一福利一区| 日韩人妻一区二区三区蜜桃视频| 久久人人88| 中文字幕无线精品亚洲乱码一区 | 色噜噜亚洲精品中文字幕| 久章草在线视频| 一区二区三区四区五区在线| 亚洲丝袜av一区| 成人性生交大片免费看视频r| 伊人久久大香线| 精品久久久影院| av最新在线| 精品日韩美女的视频高清| 国外av网站| 男女男精品视频| 成人看片人aa| 91视频亚洲| 日韩av一区在线观看| 欧美孕妇性xxxⅹ精品hd| 国产精品久久久久久久久晋中| 欧美 日韩 国产 在线观看| 成人情趣视频网站| 免费av在线一区| 白白色在线观看| 欧美日韩国产另类一区| 神马久久影视大全| 欧美国产精品专区| 国产性xxxx18免费观看视频| 卡一卡二国产精品| 日本精品久久久久久久| 欧美人体一区二区三区| 国产精品视频免费| 91亚色免费| 精品久久影院| 91九色蝌蚪国产| 激情久久一区| 高清一区二区三区视频| 97视频精品| 国产精品女主播| 久久久久久久久久久9不雅视频| 51ⅴ精品国产91久久久久久| 国产亚洲精品美女久久 | 91国产丝袜在线播放| av超碰在线观看| 在线免费观看日本欧美| 尤物在线视频| 日韩一卡二卡三卡四卡| 男人天堂久久久| 亚洲国内精品视频| 成人免费看黄| 中文字幕日韩在线观看| 农村妇女一区二区| 91地址最新发布| 久久99视频|