leetcode 814. Binary Tree Pruning | 814. 二叉树剪枝(Java)
题目
https://leetcode.com/problems/binary-tree-pruning/
题解
思路很简单,看草稿:
/** * 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 (retain(root)) return root;
else return null;
}
public boolean retain(TreeNode node) {
if (node == null) return false;
boolean l = retain(node.left);
boolean r = retain(node.right);
if (!l) node.left = null;
if (!r) node.right = null;
return l || r || node.val == 1;
}
}
还没有评论,来说两句吧...