数码网站建设论文,福州网站建设 找燕狂徒 05,html怎么生成链接给别人,怎么安装百度一、题目
给你二叉树的根结点 root #xff0c;此外树的每个结点的值要么是 0 #xff0c;要么是 1 。
返回移除了所有不包含 1 的子树的原二叉树。
节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1#xff1a;
输入#xff1a;root [1,null,0,0,1]
输出此外树的每个结点的值要么是 0 要么是 1 。
返回移除了所有不包含 1 的子树的原二叉树。
节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1
输入root [1,null,0,0,1]
输出[1,null,0,null,1]
解释
只有红色节点满足条件“所有不包含 1 的子树”。 右图为返回的答案。示例 2
输入root [1,0,1,0,0,0,1]
输出[1,null,1,null,1]示例 3 输入root [1,1,0,1,1,0,1,0]
输出[1,1,0,1,1,null,1]提示
树中节点的数目在范围 [1, 200] 内Node.val 为 0 或 1 二、思路解析
忽然发现讲了好几篇二叉树的例题其中涉及到的 “剪枝” 操作我都是一笔带过。这不今天我找了一道剪枝的题目我们一块品味一番。
我们先从名字上理解一下所谓剪枝就是把树木上的低质量树枝剪掉以促进整颗树木更好地生长。
而我们今天所讲的剪枝其实大体也是类似意思只不过是把 “值为空” 的节点删去。
理解了这些相信这道题的答案已经浮出水面了下面是详细代码 三、完整代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
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;}
} 以上就是本篇博客的全部内容啦如有不足之处还请各位指出期待能和各位一起进步