欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【算法】递归+深搜:814.二叉树剪枝

【算法】递归+深搜:814.二叉树剪枝

2025/6/28 18:42:16 来源:https://blog.csdn.net/m0_73726899/article/details/143581073  浏览:    关键词:【算法】递归+深搜:814.二叉树剪枝

目录

1、题目链接

2、题目

3、解法(后序遍历)

4、代码


1、题目链接

814.二叉树剪枝(LeetCode)

2、题目

3、解法(后序遍历)
 

 我们这次不使用宏观的观察法,而是从具体实现开始。

题目要求我们,去掉不含1的子树。

对于子树这个概念,如何判断是否不含1?

我们就需要先判断他的左右子树,然后再判断根节点。

也就是,我们需要自顶向上的遍历,因此,我们使用后序遍历,按照左子树、右子树、根节点的顺序。


剪枝操作的实施:把结点置空


遇到叶子节点,且val = 0,采取剪枝。

非叶子结点,直接返回对应的root.


函数的出口:

root == NULL

4、代码

class Solution {
public://后序遍历 //因为想要剪掉一个子树,需要确定他的子节点是否需要剪枝TreeNode* pruneTree(TreeNode* root) {if(root == NULL)return NULL;root->left = pruneTree(root->left);root->right = pruneTree(root->right);if(root->left== NULL && root->right == NULL &&root->val == 0){root = NULL;   	}return root;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词