通过遍历将树的叶子节点进行保存到list中,然后比较list中的数据即可
//叶子相似
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
getAllLeafs(root1,list1);
getAllLeafs(root2,list2);
return list1.equals(list2);
}
//获取一颗树的所有叶子节点
public void getAllLeafs(TreeNode root1,List<Integer> list){
if(root1==null) return;
//若没有则不断遍历左右子树
getAllLeafs(root1.left,list);
getAllLeafs(root1.right,list);
//遍历到叶子节点
if(root1.left==null&&root1.right==null) list.add(root1.val);
}