Python|【leetcode】203. 移除链表元素(python)

【Python|【leetcode】203. 移除链表元素(python)】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

Python|【leetcode】203. 移除链表元素(python)
文章图片

    推荐阅读