递归:移除链表元素
Posted 我家大宝最可爱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归:移除链表元素相关的知识,希望对你有一定的参考价值。
移除链表元素
- 首先假设子问题已经解决了,即子链表已经移除了指定的元素
- 当前元素该如何做才能拼接上子链表,并且可以解决原问题
从下图可以看出,假设我们已经得到了子问题的返回解sr
,那么对当前元素该如何处理呢?这里分了两种情况
- 当x=val时,我们要把这个元素删除,那么直接返回子问题的解即可
- 当x!=val时,我们直接把子问题的解拼接在head后面,然后返回head即可
最终的代码实现
# 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 is None:
return head
sr = self.removeElements(head.next,val)
if head.val == val:
return sr
else:
head.next = sr
return head
以上是关于递归:移除链表元素的主要内容,如果未能解决你的问题,请参考以下文章