首页 > 其他分享 >203. 移除链表元素

203. 移除链表元素

时间:2023-01-03 10:33:51浏览次数:49  
标签:203 val 结点 self head next 链表 移除

题目链接

https://leetcode.cn/problems/remove-linked-list-elements/description/

解题思路

按照我们解决递归的思路,我们首先想,这个递归函数,应该返回什么,应该定义什么参数。

显而易见,递归要解决什么问题,就要返回什么参数。即,我们要返回一个无val元素的链表。

而这个递归函数需要一个结点当作参数。

然后我们去想,本层需要做什么,出口是什么。

显然,如果本层结点等于val,那val结点直接就不要了,返回递归函数处理过的head.next即可。

如果本层结点不等于val,那保留本层结点,把递归函数处理过的链表(即它的返回值)接到本层结点后面即可。

那退出条件(出口)呢?这个链表走到了尽头(None的情况)

代码

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
class Solution:
    def removeElements(self, head, val: int):
        if head is None:
            return None
        if head.val == val:
            return self.removeElements(head.next, val)
        else:
            head.next = self.removeElements(head.next, val)
        return head

 

标签:203,val,结点,self,head,next,链表,移除
From: https://www.cnblogs.com/bjfu-vth/p/17021323.html

相关文章

  • 【链表】LeetCode 141. 环形链表
    题目链接141.环形链表思路设置fast指针和slow指针,分别走两步和一步,如果链表有环的话,那么两个指针一定会在某一时刻相遇。可以想象成速度不同的两个人跑圈,只要时间足够......
  • 【链表】LeetCode 160.相交链表
    题目链接160.相交链表思路1先测量两个链表的长度,记录差值k=abs(n1-n2),然后让短的链表先走k步,这样就能保证剩下的长度是一样的,再同步遍历即可。代码1classSolution......
  • 【链表】LeetCode 876.链表的中间结点
    题目链接876.链表的中间结点思路定义两个指针fast和slow,快的指针一次走两步,慢的指针一次走一步,这样当快的指针走到底的时候,慢指针正好在中间。以下两幅图说明了偶数结......
  • 每日算法之删除链表中重复的结点
    JZ76删除链表中重复的结点题目给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)例如,给定的二叉树是{1,2,3,#,#,4,5}该二叉树之......
  • 刷刷刷Day2| 142.环形链表II
    142.环形链表IILeetCode题目要求给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪......
  • 刷刷刷Day4|面试题 02.07. 链表相交
    面试题02.07.链表相交LeetCode题目要求给你两个单链表的头节点 headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两......
  • 每日算法之删除链表中重复的结点
    JZ76删除链表中重复的结点题目在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5处理后为......
  • (有序)单向链表的去重(C语言)
    单向链表的去重问题描述及分析给定一个有序的链表,去除重复出现的元素,使每个元素只出现一次。例如一个单向链表为1->1->2->2->3->4->4->∅,那么去重后得到的单向链表为......
  • 《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》思维脑图
    原文链接在这里,笔者对内容进行了大纲的抽象与提炼,如下, ......
  • 刷刷刷Day4|19.删除链表的倒数第N个节点
    19.删除链表的倒数第N个节点LeetCode题目要求给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]解题思......