출처 : https://leetcode.com/problems/evaluate-boolean-binary-tree/
You are given the root of a full binary tree with the following properties:
0
or 1
, where 0
represents False
and 1
represents True
.2
or 3
, where 2
represents the boolean OR
and 3
represents the boolean AND
.The evaluation of a node is as follows:
True
or False
.Return the boolean result of evaluating the root
node.
A full binary tree is a binary tree where each node has either 0
or 2
children.
A leaf node is a node that has zero children.
/**
* 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 boolean evaluateTree(TreeNode root) {
if(!isLeafNode(root)){
if(root.val==2) return evaluateTree(root.left) || evaluateTree(root.right);
else if(root.val==3) return evaluateTree(root.left) && evaluateTree(root.right);
}
else if(isLeafNode(root)){
if(root.val==1) return true;
else if(root.val==0) return false;
}
return false;
}
public boolean isLeafNode(TreeNode root){
if(root.left == null && root.right == null) return true;
return false;
}
}
-왁 트리문제 첨으로 풀이 참조 안 하고 풀었다^^ .. 🥸