872. 叶子相似的树

请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/leaf-similar-trees
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
叶子顺序一致,个数相同。
找到所有的叶子节点,比较即可。
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
List<Integer> ret1 = new ArrayList<>();
List<Integer> ret2 = new ArrayList<>();
dfs(root1,ret1);
dfs(root2,ret2);
if(ret1.size() != ret2.size()) {
return false;
}
for(int i=0;i<ret2.size();i++) {
if(ret1.get(i) != ret2.get(i)) {
return false;
}
}
return true;
}
public void dfs(TreeNode node, List<Integer> leafs) {
// 出现一个节点有一个孩子,那么递归时node将为null
if(node == null) {
return;
}
if(node.left == null && node.right == null) {
leafs.add(node.val);
return;
}
dfs(node.left, leafs);
dfs(node.right, leafs);
}
浙公网安备 33010602011771号