814. 二叉樹剪枝:
題目鏈接 :814. 二叉樹剪枝
題目:
給定一個二叉樹 根節點 root ,樹的每個節點的值要么是 0,要么是 1,請剪除該二叉樹中所有節點的值為 0 的子樹,
節點 node 的子樹為 node 本身,以及所有 node 的后代,
思路:
1、遞回樹的根,左,右側
2、對值不為1的,置為null來達到剪枝目的
AC代碼:
/**
* 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) {
return fun(root)?root:null;
}
private boolean fun(TreeNode node)
{
if(node==null) return false;
boolean f1=fun(node.left);
boolean f2=fun(node.right);
if(!f1) node.left=null;
if(!f2) node.right=null;
return node.val==1||f1||f2;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340643.html
標籤:AI
下一篇:生物資訊學競賽:糖尿病資料挖掘
