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

leetcode 814 二叉树剪枝

一、题目描述

二、解题思路

整体思路

可以采用递归的方法来实现这个问题。

具体思路

函数功能:

pruneTree函数用于删除以root为根节点的不包含1的子树,返回root根节点,如果以root为根节点的树全为0,则返回nullptr:

递归出口:

当root为空节点时,返回nullptr;

函数体:

(1)处理左子树,将root->left更新为函数处理的结果,即root->left=pruneTree(root->left);

(2)处理右子树,将root->right更新为函数处理的结果,即root->right=pruneTree(root->right);

(3)处理根节点

<1>如果root的左右子树均为空且root->val==0,就把root剪枝,即将root赋值为nullptr,进行返回;

<2>如果root为根节点的树无需剪枝,则直接返回root;

三、代码实现

/*** 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 {
public:TreeNode* pruneTree(TreeNode* root) {//递归出口if(root==nullptr) return nullptr;//处理左子树root->left=pruneTree(root->left);//处理右子树root->right=pruneTree(root->right);//处理根节点if(root->left==nullptr&&root->right==nullptr&&root->val==0)root=nullptr;return root;}
};

http://www.dtcms.com/a/406111.html

相关文章:

  • 【Redis】热Key/大Key问题、缓存击穿、缓存穿透、缓存雪崩、缓存与数据库一致性问题
  • 大模型剪枝系列——基于权重大小剪枝
  • 制作网站的模板深圳网站改版公司
  • 【Linux基础知识系列:第一百四十篇】理解SELinux与系统安全
  • dbswitch:一款免费开源、功能强大的异构数据库迁移同步工具
  • python+uniapp基于微信小程序美食点餐系统
  • Go语言100个实战案例-进阶与部署篇:使用Go打包生成可执行文件
  • 【Golang】--- 函数深度解析
  • 后端进阶-性能优化
  • 吉林做网站wordpress创建登录页
  • 【C++篇】C++11:从列表初始化到移动语义
  • WPS清除图片段落布局脚本
  • Excel学生成绩表,如何生成成绩分析报告?
  • 面试_场景方案设计
  • 【AI - nlp】Tokenizer简介及常见编码方式
  • JavaScript--基础ES(二)
  • 案例分享:增材制造的点阵材料压缩测试-VIC-3D高空间分辨率DIC系统在增材制造复杂结构中的应用
  • Parasoft软件测试解决方案助力Renovo汽车ADAS开发安全与合规
  • 外卖网站建设费用杭州比较好的代运营公司
  • 贵州省住房和城乡建设厅门户网站wordpress怎么看展现量
  • ✨WPF编程基础【1.1】:XAML文档框架
  • TensorFlow.js高级功能
  • AI 行业应用:AI 在金融、医疗、教育、制造业等领域的落地案例
  • 使用camel模式的WebApi接口中全大写的属性名称变成全小写的问题(续)
  • pulp解析器测试开发排产
  • 【开题答辩全过程】以 “辛巴克餐饮”小程序为例,包含答辩的问题和答案
  • bazel编译
  • 7、微服务中 DTO、VO、PO、BO 的设计规范
  • 建工之家祁阳seo
  • 自动跳转手机网站代码在线生成网站地图