LeetCode 1325. 删除给定值的叶子节点(递归)
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. 删除给定值的叶子节点(递归)相关推荐
- 消除左递归c++代码_「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解...
链接 https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/ 思路 本题和113.路径总和II是类似的思路,做完这道题,可以顺便把113. ...
- 单链表建立(头插法,头插法,用数组),求长,插入,删除,输出,释放(递归释放和循环释放),归并(递增和递减)
学习地址:http://blog.csdn.net/stpeace/article/details/8091123 #include<iostream>using namespace st ...
- leetcode 112 --- 二叉树根节点到叶子节点和为指定值的路径
1 题目 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径. 2 解法 用递归的方法,如果当前不是叶子节点,就把sum减去当前的值,并把当前节点当作路径节点pu ...
- LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)
文章目录 1. 题目 2. 解题 1. 题目 给你一棵二叉树,请按以下要求的顺序收集它的全部节点: 依次从左到右,每次收集并删除所有的叶子节点 重复如上过程直到整棵树为空 示例: 输入: [1,2,3 ...
- POJ 1577 Falling Leaves (子母二叉树,给出叶子节点的删除序列,求前序遍历)
题意:给出一棵字母二叉树删除叶子节点的序列,按删除的顺序排列.让你输出该棵二叉树额前序遍历的序列. 思路:先把一棵树的所有删除的叶子节点序列存储下来,然后从最后一行字符串开始建树即可,最后遍历输出. ...
- LeetCode 129. 求根到叶子节点数字之和(DFS)
1. 题目 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节 ...
- [链表|多解法] leetcode 19 删除链表的倒数第N个节点
[链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...
- 数据结构 day07 基础知识学习 (二叉树 的 前中后遍历 ,插入节点,删除叶子节点, 二叉树的节点个数 )
一.今天有点迷. 二.希望大家看的懂代码 ,我已经很努力写注释了. 三.这次的知识很基础 ,(老师关于 二叉树节点删除的哪里 讲的有点差 ,主要是讲之前没有打好框架 (关于父节点的定义 ) ...
- 在单链表中删除指定值的节点。
在单链表中删除指定值的节点. 题目:给定一个链表的头节点head和一个整数num,请实现函数将值为num的节点全部删除. 例如1->2->3->4->4->null,输出 ...
最新文章
- django-2 模板文件的加载
- 【55】让自己熟悉Boost
- ASP.NET MVC Music Store教程(1):概述和新项目
- [NOTE] SQL与sqlmap
- 学pyqt5之前需要学python吗_快速学习pyqt5(1)--入门
- 什么浏览器好用_手机浏览器不只UC,好用的浏览器还有这些
- jQuery中bind,live,delegate与one方法的用法及区别
- rabbitmq可靠性投递_RabbitMQ可靠性
- Windows环境下使用CMake编译OpenCV3.0和OpenCV_contrib
- LINUX下载编译gperf
- HTML网页实训的目的,web前端设计与开发-实验目的及要求 (2)
- win10提示“应用程序无法正常启动 0xc0150002”怎么办
- hprose for php,hprose for php
- 蓝牙耳机买什么好?2021值得入手的蓝牙耳机推荐
- 产品经理学习笔记-简约设计(1)
- Linux服务器集群系统(一)——LVS项目介绍
- 散文:dflow 是如何实现slice的
- 关于Render在不同情况的用法
- CAD测量工具使用方法
- 89. 格雷编码 Python
热门文章
- CNN的发展历史(LeNet,Alexnet,VGGNet,GoogleNet,ReSNet)
- 服务器节点信息管理,华为云管理节点服务器
- ARM的7种工作模式、37个通用寄存器、CPSR程序状态寄存器
- PHP通过session判断防止表单重复提交实例
- 关注 Imagine Cup 2010, 参与软件设计“最具人气奖”投票
- 解决文件路径的问题的总结
- python 多次读取文件的细节
- jQuery / zepto ajax 全局默认设置
- redis安装与基本配置
- SQL学习之SELECT子句顺序