本文最后更新于:2023年3月19日 晚上
Lt965. 单值二叉树
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。
只有给定的树是单值二叉树时,才返回 true;否则返回 false。
示例 1:

1 2
| 输入:[1,1,1,1,1,null,1] 输出:true
|
示例 2:

提示:
- 给定树的节点数范围是
[1, 100]。
- 每个节点的值都是整数,范围为
[0, 99] 。
思路
递归即可,如果为叶子节点返回 true,如果只有左或右孩子,判断当前节点和左、右孩子节点值是否相等,再递归判断左、右孩子。如果左右孩子皆有,判断当前欠点和左及右孩子节点值是否相等,再递归判断左和右孩子。
解答

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
var isUnivalTree = function (root) { if (!root || (!root.left && !root.right)) return true; if (!root.left) return root.val === root.right.val && isUnivalTree(root.right); else if (!root.right) return root.val === root.left.val && isUnivalTree(root.left); else return ( root.val === root.left.val && root.val === root.right.val && isUnivalTree(root.left) && isUnivalTree(root.right) ); };
|