class Solution {
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
List<Integer> list1 = new LinkedList();
List<Integer> list2 = new LinkedList();
work(list1, root1);
work(list2,root2);
return judge(list1, list2);
}
void work(List<Integer> list, TreeNode root) {
if (root.left == null && root.right == null) {
list.add(root.val);
} else {
if (root.left != null) {
work(list, root.left);
}
if (root.right != null) {
work(list, root.right);
}
}
}
boolean judge(List<Integer> list1, List<Integer> list2) {
if(list1.size()!=list2.size()) {
return false;
}
Iterator iterator1 = list1.iterator();
Iterator iterator2 = list2.iterator();
while(iterator1.hasNext()) {
if(iterator1.next()!=iterator2.next()) {
return false;
}
}
return true;
}
}