python移除链表元素
生活随笔
收集整理的這篇文章主要介紹了
python移除链表元素
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 移除鏈表元素
給你一個(gè)鏈表的頭節(jié)點(diǎn) head 和一個(gè)整數(shù) val ,請(qǐng)你刪除鏈表中所有滿足 Node.val == val 的節(jié)點(diǎn),并返回 新的頭節(jié)點(diǎn) 。
輸入:head = [1,2,6,3,4,5,6], val = 6
輸出:[1,2,3,4,5]
示例 2:
輸入:head = [], val = 1
輸出:[]
示例 3:
輸入:head = [7,7,7,7], val = 7
輸出:[]
| 題解
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution:def removeElements(self, head: ListNode, val: int) -> ListNode:# 解決鏈表常見的三種情況# 1.頭節(jié)點(diǎn)是否需要特殊處理# 2.尾節(jié)點(diǎn)是否需要特殊處理# 3.空鏈表是否需要特殊處理# 常見的處理方式 引入虛擬頭節(jié)點(diǎn)# 引入虛擬頭節(jié)點(diǎn)new_head = ListNodenew_head.next = headprev = new_headwhile prev.next is not None:# 如果要?jiǎng)h除某個(gè)節(jié)點(diǎn),首先要找到被刪除節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)if prev.next.val == val:prev.next = prev.next.nextelse:prev = prev.nextreturn new_head.next總結(jié)
以上是生活随笔為你收集整理的python移除链表元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 链表两数相加
- 下一篇: python 链表的中间节点