Leetcode 965單值二叉樹
阿新 • • 發佈:2020-12-15
題目定義:
如果二叉樹每個節點都具有相同的值,那麼該二叉樹就是單值二叉樹。 只有給定的樹是單值二叉樹時,才返回 true;否則返回 false。 示例 1: 1 / \ 1 1 / \ \ 1 1 1 輸入:[1,1,1,1,1,null,1] 輸出:true 示例 2: 2 / \ 2 2 / \ 5 2 輸入:[2,2,2,5,2] 輸出:false 提示: 給定樹的節點數範圍是 [1, 100]。 每個節點的值都是整數,範圍為 [0, 99]。
遞迴方式:
class Solution { public boolean isUnivalTree(TreeNode root) { if(root == null) return true; return dfs(root,root.val); } private boolean dfs(TreeNode root,int value){ if(root == null) return true; if(root.val != value) return false; return dfs(root.left,value) && dfs(root.right,value); } }
迭代方式:
class Solution { public boolean isUnivalTree(TreeNode root) { if(root == null) return true; Queue<TreeNode> queue =new LinkedList<>(); int value = root.val; queue.offer(root); while(queue.size() > 0){ TreeNode node = queue.poll(); if(node.val != value) return false; if(node.left != null) queue.offer(node.left); if(node.right != null) queue.offer(node.right); } return true; } }
參考:
https://leetcode-cn.com/problems/univalued-binary-tree/submissions/