每日一题哈。
不得不说,今天的每日一题真的是简单。直接递归就完事了。
思路:1.判断节点是否为空,为空直接返回真。
2.判断当前节点的值是否和根节点的值一致,如果不一致,返回false;
3.递归遍历左右节点,直到达到条件1或者条件2,退出。
/**
* @author xnl
* @Description:简单二叉树
* @date: 2022/5/24 21:48
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
TreeNode root = new TreeNode(1);
TreeNode left = new TreeNode(1, new TreeNode(1), new TreeNode(1));
TreeNode right = new TreeNode(1, new TreeNode(1), null);
root.left = left;
root.right = right;
System.out.println(solution.isUnivalTree(root));
}
public boolean isUnivalTree(TreeNode root) {
return bfs(root, root.val);
}
private boolean bfs(TreeNode root , int val){
if (root == null){
return true;
}
if (root.val != val){
return false;
}
return bfs(root.left, val) && bfs(root.right, val);
}
}
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;
}
}