LeetCode 1110.删点成林
主页有其他数据结构内容(持续更新中)
难度:Medium
代码:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {private:vector<TreeNode*> result;set<int> to_delete_set;TreeNode* helper(TreeNode* node, bool is_root) {if (node == NULL) {return NULL;}// 判断当前节点是不是需要被删除的节点bool deleted = to_delete_set.find(node->val) != to_delete_set.end();// 只有当一个节点是某棵树的根节点并且不需要被删除时,才能放进结果数组// 结果数组里存放的都是每棵树的根节点if (is_root && !deleted) {result.emplace_back(node);}// 这里的flag的值和deleted的值相同,因为如果某一个节点的父节点被删除了(也就是当前deleted为true),那么该节点就会成为一颗新树的根节点,即该节点的is_root变量为true// 用一个新变量flag表示内在联系,不容易误解bool flag = deleted;node->left = helper(node->left, flag);node->right = helper(node->right, flag);return deleted ? NULL : node;}
public:vector<TreeNode*> delNodes(TreeNode* root, vector<int> to_delete) {for (int i : to_delete) {to_delete_set.insert(i);}helper(root, true);return result;}
};
LeetCode 1110.删点成林相关推荐
- Leetcode 1110.删点成林(Delete Nodes And Return Forest)
Leetcode 1110.删点成林 1 题目描述(Leetcode题目链接) 给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值在 to_delete 中出现,我们就把该节 ...
- LeetCode 1110. 删点成林(二叉树递归)
1. 题目 给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合). 返回森林中 ...
- leetCode 1110 删点成林(树,后序遍历)
题目链接:点击查看 题目描述: 给定一个整数二叉树和一些整数,求删掉这些整数对应的节点后,剩余的子树. 输入输出: 输入:root = [1,2,3,4,5,6,7], to_delete = [3, ...
- leetcode 1110. 删点成林
题目描述: 给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合). 返回森林中 ...
- LeetCode 刷题系列 -- 1110. 删点成林
给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合). 返回森林中的每棵树.你 ...
- leetcode 111.删点成林 C++
leetcode 111.删点成林 C++ 删点成林 题目描述 示例 提示 解题思路 C++代码 注意事项 删点成林 题目描述 给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值 ...
- PigyChan_LeetCode 1110. 删点成林
1110. 删点成林 难度中等 给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的 ...
- 力扣解法汇总1110. 删点成林
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCod ...
- 1110. 删点成林
给出二叉树的根节点 root,树上每个节点都有一个不同的值. 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合). 返回森林中的每棵树.你 ...
最新文章
- Openssl生成证书流程
- FJ集团企业级邮件服务器构建方案
- 在Eclipse中配置Tomcat7.0
- linux下通过gprs模块拨号上网(转)
- c语言链表版百度云,链表详解(C语言版)
- SuseLinux详解(3)——开启/关闭防火墙的方法
- 华尔街(Wall Street)与先锋集团(Vanguard )之间的战争
- 数组作为方法的参数实例和细节(Java)
- 程序员如何从零开始运营好一个公众号挣点零花钱之公众号定位
- 不小心误删@‘local’操作恢复
- JS数组方法shift()、unshift()用法实例分析
- 潘多拉-视频播放器,一个轻量的视频播放器
- 【单片机笔记】集USB充电、USB供电和电池供电的电源设计
- LM75AD温度传感器的应用(2)
- 16.引言篇——自定义过滤器及标签
- 我在大学读计算机 英语,托福极速英语:我在大学主修计算机
- 第五章 区块链在非金融行业的应用
- 朗读评价语言集锦_课堂评价语言“集锦”
- 关于sublime代码格式化和关闭更新提示
- 元素显隐切换过渡效果的实现