728x90
leetcode.com/explore/learn/card/recursion-ii/503/recursion-to-iteration/2894/
첫 if문은 생각해냈고, 두번째 if문은 따로 적어줘야 하는걸 생각 못했다.
만약 첫 if 문 뒤에 else로 return false;를 하면 메서드가 끝나버리는 데 이 부분도 나중에야 생각해냄
그래서 노드 중 하나가 null 일때를 별도의 if문으로 적어줘야한다.
그리고 핵심인 마지막 if문을 머리속으로 생각해냈는데 이 함수 두개를 재귀호출할 때 두개의 메서드를 && 로 연결할 생각을 미처 못했다. 이런 부분이 부족한 듯
그래도 로직의 대부분을 생각해내서 뿌듯했다. 많이 발전하고 있다. 화이팅➰!!
public class SameTree0415 {
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 isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
return false;
}
}
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;
}
}
728x90
'코딩테스트' 카테고리의 다른 글
[LeetCode] 268. Missing Number (4) | 2021.04.19 |
---|---|
[LeetCode] 27. Remove Element (0) | 2021.04.17 |
[LeetCode] Sort an Array (버블, 삽입, 선택, 퀵, 병합, 힙 정렬) (0) | 2021.04.16 |
[LeetCode] 14. Longest Common Prefix (0) | 2021.04.12 |
[LeetCode] 206. Reverse Linked List (0) | 2021.04.09 |