单链表中删除指定值的节点
生活随笔
收集整理的這篇文章主要介紹了
单链表中删除指定值的节点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
給定一個鏈表的頭節點head和一個整數num,請實現函數將值為num的節點全部刪除。
基本思路
方法一。時間復雜度O(N),空間復雜度O(N)。
利用棧或者其他存儲結構。將不等于num的節點收集起來,收集完成后再重新連接即可。代碼實現如下:
def removeRepl(head,num):if head == None:returnstack = []while head.value!=num:stack.append(head)head = head.nextwhile len(stack)!=0:stack[-1].next = headhead = stack.pop()return head方法二。時間復雜度O(N),空間復雜度(1)。
首先從鏈表頭開始,找到第一個值不等于num的節點,作為新的頭節點。之后繼續往后遍歷,將所有值為num的節點刪除即可。代碼實現如下:
def replceRepl2(head,num):if head == None:return headwhile head!=None and head.value = num:head = head.nextpre = headcur = head.nextwhile cur!=None:if cur.value == num:pre.next = cur.nextelse:pre = curcur = cur.nextreturn head?
總結
以上是生活随笔為你收集整理的单链表中删除指定值的节点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 删除无序单链表中值重复出现的节点
- 下一篇: 将搜索二叉树转换成双向链表