*해결과정
List를 2개 만들고, DFS를 2번 돌려서 List를 비교한다. list를 비교할 때 equals를 써서 비교가 가능하다.
import java.util.*;
class Solution {
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
DFS(root1, list1);
DFS(root2, list2);
return list1.equals(list2);
}
public void DFS(TreeNode root, List<Integer> list){
if(root.left==null && root.right==null){
list.add(root.val);
return;
}
if(root.left!=null) DFS(root.left, list);
if(root.right!=null) DFS(root.right, list);
}
}
* 같은 type을 가진 list를 비교할 때, 내부에 어떤 값을 가지고 있는지 equals로 비교가 가능하다!
반응형
'Algorithm' 카테고리의 다른 글
669 : Trim a Binary Search Tree ( leetcode / java ) (0) | 2020.10.29 |
---|---|
637 : Average of Levels in Binary Tree ( leetcode / java ) (0) | 2020.10.28 |
965 : Univalued Binary Tree ( leetcode / java ) (0) | 2020.10.28 |
559 : Maximum Depth of N-ary Tree ( leetcode / java ) (0) | 2020.10.28 |
897 : Increasing Order Search Tree ( leetcode / java ) (0) | 2020.10.28 |