1.1 ⭐算法原理:
移除链表指定原理:
1)判断头节点是不是需要删除的值,如果是,将头节点下一个节点作为头节点。
2)如果头节点不是需要删除的值,判断下一个节点是不是需要删除的值
1.2 🐺移除链表指定元素
题意:删除链表中等于给定值 val 的所有节点。
示例 1:输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
判断头节点是不是需要删除的值
判断下一个节点是不是需要删除的值
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def removeElements(head: ListNode, val: int) -> ListNode:
# 头节点是需要删除的值
while head is not None and head.val == val:
head = head.next
# 头节点不是需要删除的值
# 判断下一个节点是否是需要删除的值
curr = head # 将头节点设置为当前节点
while curr is not None and curr.next is not None:
if curr.next.val == val:
curr.next = curr.next.next
else:
curr = curr.next
return head