LeetCode 203————チェーンテーブル要素python(再帰非再帰)を除去する
1313 ワード
非再帰
再帰
#Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
if not head:
return None
first = ListNode(-1) # first
first.next = head
p, q = first, head # p,q p q val
while q:
if q.val ==val:
p.next = q.next
q = q.next
else:
q = q.next
p = p.next
return first.next
再帰
#Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
if not head:
return None
head.next = self.removeElements(head.next,val) #
return head.next if head.val == val else head