Leetcode 203. Remove Linked List Elements
题目描述:去除链表中值等于给定值得节点,返回一个链表。
题目链接:Leetcode 203. Remove Linked List Elements
思路:没啥好说的,断链操作。
主要是val在第一个元素的时候考虑,快慢指针的条件是while p and p.next
这个条件不错。
这个逻辑还是比较凌乱,要是指示一个prev、一个dummy.next 会更好。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
dummy = ListNode(None)
dummy.next = head
p = dummy.next
prev = dummy
while(p):
if p.val == val:
prev.next = p.next
else:
prev = p #移动prev
p = p.next
return dummy.next