문제 설명 :
두 TreeNode가 같은지 확인하는 문제이다.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return true;
}
if (p == null || q == null) {
return false;
}
if (p.val != q.val) {
return false;
}
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}
해설 :
이전 문제를 inorder로 풀었기 때문에 이를 활용해서 inorder로 순회한 뒤, 결과를 비교하려 했으나
같은 숫자들로만 구성되어 있는 경우 정확한 비교가 어려웠다. 결국 하나하나 비교하는 방식 + recursive를 활용했다.
'Algorithm > LeetCode' 카테고리의 다른 글
[Java] 104. Maximum Depth of Binary Tree (0) | 2023.06.13 |
---|---|
[Java] 101. Symmetric Tree (0) | 2023.06.12 |
[Java] 94. Binary Tree Inorder Traversal (0) | 2023.06.12 |
[Java] 88. Merge Sorted Array (0) | 2023.06.12 |
[Java] 83. Remove Duplicates from Sorted List (0) | 2023.06.09 |