# 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)