1. 题目

给你一棵以 root 为根的二叉树和一个整数 target ,请你删除所有值为 target 的 叶子节点

注意,一旦删除值为 target 的叶子节点,它的父节点就可能变成叶子节点;
如果新叶子节点的值恰好也是 target ,那么这个节点也应该被删除

也就是说,你需要重复此过程直到不能继续删除。

1 <= target <= 1000
每一棵树最多有 3000 个节点。
每一个节点值的范围是 [1, 1000] 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-leaves-with-a-given-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:TreeNode* removeLeafNodes(TreeNode* root, int target) {if(!root)return NULL;TreeNode* l = removeLeafNodes(root->left, target);TreeNode* r = removeLeafNodes(root->right, target);if(!l)//左边节点可删,空也可以root->left = NULL;if(!r)//右边节点可删root->right = NULL;if(!l && !r && root->val == target)return NULL;//左右都没有,且val==target,可删,返回NULLelsereturn root;}
};

52 ms 21.7 MB

  • 优化下
class Solution {public:TreeNode* removeLeafNodes(TreeNode* root, int target) {if(!root)return NULL;root->left = removeLeafNodes(root->left, target);root->right = removeLeafNodes(root->right, target);if(!root->left && !root->right && root->val == target)return NULL;//左右都没有,且val==target,可删,返回NULLreturn root;}
};

32 ms

LeetCode 1325. 删除给定值的叶子节点(递归)相关推荐

  1. 消除左递归c++代码_「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解...

    链接 https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/ 思路 本题和113.路径总和II是类似的思路,做完这道题,可以顺便把113. ...

  2. 单链表建立(头插法,头插法,用数组),求长,插入,删除,输出,释放(递归释放和循环释放),归并(递增和递减)

    学习地址:http://blog.csdn.net/stpeace/article/details/8091123 #include<iostream>using namespace st ...

  3. leetcode 112 --- 二叉树根节点到叶子节点和为指定值的路径

    1 题目 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径. 2 解法 用递归的方法,如果当前不是叶子节点,就把sum减去当前的值,并把当前节点当作路径节点pu ...

  4. LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你一棵二叉树,请按以下要求的顺序收集它的全部节点: 依次从左到右,每次收集并删除所有的叶子节点 重复如上过程直到整棵树为空 示例: 输入: [1,2,3 ...

  5. POJ 1577 Falling Leaves (子母二叉树,给出叶子节点的删除序列,求前序遍历)

    题意:给出一棵字母二叉树删除叶子节点的序列,按删除的顺序排列.让你输出该棵二叉树额前序遍历的序列. 思路:先把一棵树的所有删除的叶子节点序列存储下来,然后从最后一行字符串开始建树即可,最后遍历输出. ...

  6. LeetCode 129. 求根到叶子节点数字之和(DFS)

    1. 题目 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节 ...

  7. [链表|多解法] leetcode 19 删除链表的倒数第N个节点

    [链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...

  8. 数据结构 day07 基础知识学习 (二叉树 的 前中后遍历 ,插入节点,删除叶子节点, 二叉树的节点个数 )

    一.今天有点迷. 二.希望大家看的懂代码 ,我已经很努力写注释了. 三.这次的知识很基础 ,(老师关于 二叉树节点删除的哪里 讲的有点差 ,主要是讲之前没有打好框架   (关于父节点的定义   )  ...

  9. 在单链表中删除指定值的节点。

    在单链表中删除指定值的节点. 题目:给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除. 例如1->2->3->4->4->null,输出 ...

最新文章

  1. django-2 模板文件的加载
  2. 【55】让自己熟悉Boost
  3. ASP.NET MVC Music Store教程(1):概述和新项目
  4. [NOTE] SQL与sqlmap
  5. 学pyqt5之前需要学python吗_快速学习pyqt5(1)--入门
  6. 什么浏览器好用_手机浏览器不只UC,好用的浏览器还有这些
  7. jQuery中bind,live,delegate与one方法的用法及区别
  8. rabbitmq可靠性投递_RabbitMQ可靠性
  9. Windows环境下使用CMake编译OpenCV3.0和OpenCV_contrib
  10. LINUX下载编译gperf
  11. HTML网页实训的目的,web前端设计与开发-实验目的及要求 (2)
  12. win10提示“应用程序无法正常启动 0xc0150002”怎么办
  13. hprose for php,hprose for php
  14. 蓝牙耳机买什么好?2021值得入手的蓝牙耳机推荐
  15. 产品经理学习笔记-简约设计(1)
  16. Linux服务器集群系统(一)——LVS项目介绍
  17. 散文:dflow 是如何实现slice的
  18. 关于Render在不同情况的用法
  19. CAD测量工具使用方法
  20. 89. 格雷编码 Python

热门文章

  1. CNN的发展历史(LeNet,Alexnet,VGGNet,GoogleNet,ReSNet)
  2. 服务器节点信息管理,华为云管理节点服务器
  3. ARM的7种工作模式、37个通用寄存器、CPSR程序状态寄存器
  4. PHP通过session判断防止表单重复提交实例
  5. 关注 Imagine Cup 2010, 参与软件设计“最具人气奖”投票
  6. 解决文件路径的问题的总结
  7. python 多次读取文件的细节
  8. jQuery / zepto ajax 全局默认设置
  9. redis安装与基本配置
  10. SQL学习之SELECT子句顺序