当前位置: 首页 > news >正文

wordpress 企业站教程汽车专业科技网站建设

wordpress 企业站教程,汽车专业科技网站建设,免费ppt模板下载 素材,广州企业搜索引擎优化服务给定一个二叉树 根节点 root #xff0c;树的每个节点的值要么是 0#xff0c;要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身#xff0c;以及所有 node 的后代。 示例 1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红…给定一个二叉树 根节点 root 树的每个节点的值要么是 0要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身以及所有 node 的后代。 示例 1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有红色节点满足条件“所有不包含 1 的子树”。 右图为返回的答案。 示例 2: 输入: [1,0,1,0,0,0,1] 输出: [1,null,1,null,1] 解释: 示例 3: 输入: [1,1,0,1,1,0,1,0] 输出: [1,1,0,1,1,null,1] 解释: 1解法一  class Solution { public:bool dfs(TreeNode* node) {if(nodenullptr) return false;bool left dfs(node-left);bool right dfs(node-right);// 叶子节点且值为0 执行删除if(leftfalse rightfalse node-val 0) return false;// 非叶子节点左孩子返回false将其删除具体操作为node-left nullptrif(leftfalse) node-left nullptr;// 非叶子节点右孩子返回false将其删除具体操作为node-right nullptrif(rightfalse) node-right nullptr; return true;}TreeNode* pruneTree(TreeNode* root) {return dfs(root)?root:nullptr;} }; 2解法二 class Solution { public:int dfs(TreeNode* node) {if(nodenullptr) return 0;int left dfs(node-left);int right dfs(node-right);if(left0) node-leftnullptr;if(right0) node-rightnullptr;return leftrightnode-val;}TreeNode* pruneTree(TreeNode* root) {int ans dfs(root);if(ans0) return nullptr;return root;} }; 3解法三 class Solution { public:TreeNode* pruneTree(TreeNode* root) {if(root nullptr) return nullptr;root-left pruneTree(root-left);root-right pruneTree(root-right);if(root-leftnullptr root-rightnullptr root-val 0) { // 如果叶子节点的值为0就删除该节点return nullptr;}return root;} }; leetCode 1110. 删点成林 1110. 删点成林 - 力扣LeetCode 给出二叉树的根节点 root树上每个节点都有一个不同的值。如果节点值在 to_delete 中出现我们就把该节点从树上删去最后得到一个森林一些不相交的树构成的集合。返回森林中的每棵树。你可以按任意顺序组织答案。 示例 1 输入root [1,2,3,4,5,6,7], to_delete [3,5] 输出[[1,2,null,4],[6],[7]]示例 2 输入root [1,2,4,null,3], to_delete [3] 输出[[1,2,4]] 解法一“递归”的思路可以分为「递」和「归」两个部分。 「递」的思路向下传参然后不断进行处理类似前序遍历「归」的思路先遍历到底然后向上传参类似后序遍历 本题中采用「归」的思路需要解决两个问题 1.向上传递的参数是什么2.在当前节点如何进行处理 思路和分析 1.如果该节点(node)不需要被删除那么返回 node 即可如果需要被删除那么返回 null 即可2.在处理需要被删除的节点node时删除前先判断其有无左右子树若有就将其左右子树加入ans中再返回 null 即可 class Solution { public:vectorTreeNode * ans;unordered_setint delSet;bool dfs(TreeNode *node) {if(nodenullptr) return false;bool left dfs(node-left);bool right dfs(node-right);if(delSet.count(node-val)) {if(left) ans.push_back(node-left);if(right) ans.push_back(node-right);return false;}if(leftfalse) node-left nullptr;if(rightfalse) node-right nullptr; return node;}vectorTreeNode * delNodes(TreeNode *root, vectorint to_delete) {for(const auto a:to_delete) {delSet.insert(a);}if (dfs(root)) ans.push_back(root);return ans;} }; 解法二 class Solution { public:vectorTreeNode * ans;unordered_setint delSet;TreeNode * dfs(TreeNode *node) {if(nodenullptr) return nullptr;node-left dfs(node-left);node-right dfs(node-right);if(delSet.count(node-val)) {if(node-left) ans.push_back(node-left);if(node-right) ans.push_back(node-right);return nullptr; // 相当于删除节点}return node;// 没有删除}vectorTreeNode * delNodes(TreeNode *root, vectorint to_delete) {for(const auto a:to_delete) {delSet.insert(a);}if (dfs(root)) ans.push_back(root);return ans;} }; 解法三来自灵茶山艾府的题解和解法二思路差不多文字总结来自灵神的文章1110. 删点成林 - 力扣LeetCodehttps://leetcode.cn/problems/delete-nodes-and-return-forest/solutions/2289131/he-shi-ji-lu-da-an-pythonjavacgo-by-endl-lpcd/ class Solution {vectorTreeNode * ans;unordered_setint s;TreeNode *dfs(TreeNode *node) {if (node nullptr) return nullptr;node-left dfs(node-left);node-right dfs(node-right);if (!s.count(node-val)) return node;if (node-left) ans.push_back(node-left);if (node-right) ans.push_back(node-right);return nullptr;}public:vectorTreeNode * delNodes(TreeNode *root, vectorint to_delete) {for (int x: to_delete) s.insert(x);if (dfs(root)) ans.push_back(root);return ans;} }; 总结考虑清楚两个点 1.对叶子节点被删如何处理直接丢掉节点    2.对非叶子节点被删如何处理把子节点加入结果当前节点丢掉即可 最后判断树根是否为空非空则加入ans 推荐和参考文章 1110. 删点成林 - 力扣LeetCodehttps://leetcode.cn/problems/delete-nodes-and-return-forest/solutions/2289131/he-shi-ji-lu-da-an-pythonjavacgo-by-endl-lpcd/1110. 删点成林 - 力扣LeetCodehttps://leetcode.cn/problems/delete-nodes-and-return-forest/solutions/2289170/er-cha-shu-de-hou-xu-bian-li-cong-xia-wa-0y4l/1110. 删点成林 - 力扣LeetCodehttps://leetcode.cn/problems/delete-nodes-and-return-forest/solutions/2289224/shan-dian-cheng-lin-cai-yong-di-gui-zhon-9jsj/
http://www.zqtcl.cn/news/985008/

相关文章:

  • 有了域名怎么建设网站在线crm免费将夜2
  • 网站建设 技术方案模板长沙手机网站公司
  • 游戏网站建设免费版百度只更新快照不收录网站
  • html小清新类型网站网站建设中应注意哪些问题
  • 网站开发技术和seo的联系精品课程网站建设 公司
  • 大型网站建设一般多少钱wordpress 调用百度前端公众库
  • 个人电脑做网站服务器网站地方网站域名用全拼
  • 我们网站在那里登陆后台系统管理成都app制作开发
  • 可以做问卷调查的网站仙居网站建设
  • 知名网站建设公司电话做一个小程序需要多少钱
  • 外贸找客户有什么网站个人如何做网站
  • 旅游项目网站开发ui界面设计分析
  • 企业建设网站没有服务器代理网页浏览
  • 深圳网站建设新闻网站建设营销的企业
  • 建筑设计网站软件排名工具
  • wordpress theme珠宝最适合seo的网站源码
  • 建设工程规划许可证查询网站畜牧业网站模板
  • 做网站大概要多少钱页面网站缓存如何做
  • 家电网站建设需求分析朔州网络推广
  • 陕西交通建设集团网站体检网络营销中自建网站
  • 做游戏的php网站有哪些微信商城是什么
  • wordpress memcached redux深圳网站优化方法
  • 移动商城 网站建设方法方式韩国导航地图app
  • 企业网站源码是什么瑞安企业做网站
  • 佛山深圳建网站wordpress 段代码
  • 网站备案 强制仿牌网站容易被攻击吗
  • 网站做访问追踪js特效演示网站
  • 建设网站女装名字大全宝宝投票网站怎么做
  • 江苏省建设厅网站首页天津百度网站排名优化
  • 织梦网络设计工作室网站模板镇江市精神文明建设网站