LEETCODE | PYTHON | 203 | 移除链表元素
1. 题目
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/linked-list-cycle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
#链表为空的特殊情况判断
if head == None:
return None
#头节点数值重复的特殊情况判断
while head.val == val:
cur = head.next
head = cur
#全部重复导致链表遍历到末尾
if cur == None:
return None
#遍历判断
cur = head
while cur.next:
#若cur.next数值相等
if cur.next.val == val:
cur.next = cur.next.next
#若不相等
else:
cur = cur.next
return head