最近刷LeetCode题目的一些思路,题目信息
叶值序列

(6, 7, 4, 9, 8)
叶相似的。
root1
root2
true
false
提示:
1
100
找到各自树的叶值队列,然后进行比较
1 寻找叶值队列
private void getTreeChild(List<Integer> list, TreeNode root){ if(root.left == null && root.right == null){ list.add(root.val); } else { if(root.left != null){ getTreeChild(list,root.left); } if(root.right != null){ getTreeChild(list,root.right); } } }
2:主方法体,将两个树的叶值队列都找到,然后挨个比较
public boolean leafSimilar(TreeNode root1, TreeNode root2) { boolean retBoolean = false; List<Integer> leftRootList = new ArrayList<>(); List<Integer> rightRootList = new ArrayList<>(); getTreeChild(leftRootList,root1); getTreeChild(rightRootList,root2); if(leftRootList.size() == rightRootList.size()){ return false; } else for(int i=0; i<leftRootList.size(); i++){ if(leftRootList.get(i) != rightRootList.get(i)){ retBoolean = false; break; } } return retBoolean; }
文章来源: LeetCode 872. 叶子相似的树