Consider all the leaves of a binary tree. From left to right order, the values of those leaves form a leaf value sequence.
For example, in the given tree above, the leaf value sequence is (6, 7, 4, 9, 8)
.
Two binary trees are considered leaf-similar if their leaf value sequence is the same.
Return true
if and only if the two given trees with head nodes root1
and root2
are leaf-similar.
Note:
1
and 100
nodes.题目大意:判断两个树的叶子节点是否相同
解题思路:本体属于简单题,将两个树的叶子节点都取出来,然后一一对比
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
List<Integer> list1 = new LinkedList<>();
list1 = leafSequence(root1,list1);
List<Integer> list2 = new LinkedList<>();
list2 = leafSequence(root2,list2);
if (list1.size()!=list2.size()) return false;
for (int i = 0 ; i < list1.size();i++){
if (list1.get(i) != list2.get(i)) return false;
}
return true;
}
public List<Integer> leafSequence(TreeNode root,List<Integer> list){
if (root == null) return null;
if (root.left == null && root.right == null) list.add(root.val);
leafSequence(root.left,list);
leafSequence(root.right,list);
return list;
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。