【Python|【leetcode】203. 移除链表元素(python)】
文章图片
写法一:不新建头结点
# Definition for singly-linked list.
# class ListNode(object):
#def __init__(self, val=0, next=None):
#self.val = val
#self.next = next
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
# 写法一:不新new一个头结点的写法
if not head:
return head
while head.val == val:
if not head.next:
return
head = head.next
pre = head
p = head.next
while p:
if p.val == val:
pre.next = p.next
p = p.next
else:
pre = p
p = p.next
return head
写法二:新建一个头结点,统一首元结点和链表中间结点的操作
# Definition for singly-linked list.
# class ListNode(object):
#def __init__(self, val=0, next=None):
#self.val = val
#self.next = next
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
# 写法二:new 一个头结点,让头结点的指针指向首元结点,统一操作(让首元结点和链表中间的结点的操作一致)
dummyNode = ListNode(0, head)
pre = dummyNode
p = head
while p:
if p.val == val:
pre.next = p.next
p = p.next
else:
pre = p
p = p.next
return dummyNode.next
文章图片
推荐阅读
- #|LeetCode203. 移除链表元素
- ios快捷指令|ios快捷指令 python_苹果有「快捷指令」,Windows下也有一键「快捷菜单」
- 使用 Python Poetry 进行依赖管理
- python|Python数据科学手册
- #yyds干货盘点# 滚雪球学 Python 之怎么玩转时间和日期库
- #yyds干货盘点# 手把手教你使用Python网络爬虫实现邮件定时发送(附源码)
- leetcode|力扣刷题_栈
- 数据结构与算法基础|[力扣刷题总结](队列和优先队列(堆)篇)
- Python爬虫实战100例|Python爬虫实战(二)(爬取快代理构建代理IP池)