1. 题目描述
给定二叉树根结点 root ,此外树的每个结点的值要么是 0,要么是 1。
返回移除了所有不包含 1 的子树的原二叉树。
( 节点 X 的子树为 X 本身,以及所有 X 的后代。)
(省略示例)
说明:
给定的二叉树最多有 100 个节点。
每个节点的值只会为 0 或 1 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-pruning
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2.思考过程
//思路:
//主要还是对二叉树进行遍历,在遍历的过程中,若当前的结点为子节点且他的val==0,则将他的父节点指向他的指针只为null
3.代码如下
//移除所有不包含 1 的子树
struct TreeNode* pruneTree(struct TreeNode* root) {
//遍历,将val=0的子节点置空
if(root == NULL )
{
return NULL;
}
root->left = pruneTree(root->left);
root->right = pruneTree(root->right);
if(!root->left && !root->right&&root->val==0)
{
return NULL;
}
return root;
}