[LeetCode] 203. 移除链表元素

2023-04-20,,

题目链接:https://leetcode-cn.com/problems/remove-linked-list-elements/

题目描述:

删除链表中等于给定值 val 的所有节点。

示例:

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

思路:

迭代

class Solution:
def removeElements(self, head: ListNode, val: int) -> ListNode:
dummy = ListNode(0)
dummy.next = head
prev = dummy
last = prev.next
while last :
if last.val == val:
prev.next = last.next
last = prev.next
else:
prev = prev.next
last = prev.next
return dummy.next

递归

class Solution:
def removeElements(self, head: ListNode, val: int) -> ListNode:
if not head: return
head.next = self.removeElements(head.next, val)
return head.next if head.val == val else head

[LeetCode] 203. 移除链表元素的相关教程结束。

《[LeetCode] 203. 移除链表元素.doc》

下载本文的Word格式文档,以方便收藏与打印。