์ด์ฉ๋ค ๋ฉด์ ์ด ์กํ์ ๋ฐ๋ฑ์ ๋ถ๋จ์ด์ง ๋๋์ผ๋ก ๋ถ๋ด๋ถ๋ด ๋ฌธ์ ํธ๋์ค ใ
์น๊ตฌํํ ๋ฆฌํธ์ฝ๋ ์ถ์ฒ ๋ฐ์์ Difficulty Easy๋จ๊ณ๋ถํฐ ํ๊ณ ์๋๋ฐ, ์ด๋ ต์ง๋ ์๋ค. ํ์ง๋ง ์ต์ ํ๋ ์ ๋ง ๋์ด ์๊ณ , ๋๋ํ ์ฌ๋๋ค์ ์ด ์ธ์์ ๋ง๋ค๋ ๊ฑธ ๊ณ์ํด์ ๊นจ๋ซ๊ฒ ๋๋ค.
TreeNode 2๊ฐ๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋์ ธ์ฃผ๋ฉด ๊ทธ 2๊ฐ์ TreeNode๋ค์ด ๋์ผํ์ง ์๋์ง๋ฅผ ํ๋ณํ๋ ๋ฉ์๋๋ฅผ ์ง๋ ๋ฌธ์ ๋ค.
Class TreeNode
๋ ์๋์ฒ๋ผ ๊ตฌํ๋์ด ์๋ค๋ ๊ฐ์ ํ์ ๋ฉ์๋ ๋ก์ง๋ง ์ฑ์ฐ๋ฉด ๋๋ค.
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;
}
}
๋ด ์๊ฐ์ ํ๋ฆ์ ์๋์ ๊ฐ๋ค.
1. ์ผ๋จ ํ์ฌ ๋ ธ๋๋ค์ ๊ฐ์ ๋น๊ตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ์กฐ๊ฑด๋ฌธ์ ๋ฐ๋์ ํ์ํ๋ค.
- ํ์ฌ ๋ ธ๋๋ค์ ๊ฐ์ ๋น๊ตํด์ ๊ฐ๋ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์๊ฐํ๊ณ , ๋ง์ฝ ๋ค๋ฅด๋ค๋ฉด ์ดํ๋ฅผ ๊ณ ๋ฏผํ ํ์๋ ์์ด false๋ค.
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p.val==q.val)
return (์์ง ์๊ฐ์ค์ธ ๋ก์ง)
else return false;
}
2. ํ์ฌ ๋ ธ๋๋ค์ ๊ฐ์ด ๊ฐ๋ค๋ฉด ํ์ฌ ๋ ธ๋์ ์์๋ค์ ๋น๊ตํด์ผ ํ๋ค. ๊ฐ ๋ ธ๋์๋ ์ผ์ชฝ ์์๊ณผ ์ค๋ฅธ์ชฝ ์์์ด ์๋๋ฐ,
๊ทธ ์์๋ค์ ๊ฐ์ ๋น๊ตํ๋ ๋ก์ง์ 1๋ฒ์ด๋ ์ฌ์ค์ ๋์ผํ๋ค. → ๊ทธ๋ ๋ค๋ฉด ์ฌ๊ท๋ฅผ ์๊ฐํด์ผ๊ฒ ๊ตฐ!
๊ทผ๋ฐ ์์๋ค ์ค ํ๋๋ผ๋ ๊ฐ์ด ์๋ก ๋ค๋ฅด๋ค๋ฉด ์ด๊ฒ๋ ๊ฒฐ๊ตญ false๋ค. → ๊ทธ๋ ๋ค๋ฉด &&๋ก ๋ฌถ์ด์ ๋ ์ค ํ๋๋ผ๋ false๋ง false๋ฅผ ๋ฆฌํดํ๋๋ก ํด์ผ๊ฒ ๋ค!
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p.val==q.val)
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
else return false;
}
3. ์ฌ๊ท๋ก ๊ณ์ํด์ ๊ฐ๋ค์ ๋น๊ตํด ๋๊ฐ๋ค๊ฐ ๋ง์ง๋ง ๋
ธ๋์ ๋๋ฌํด์ ์์์ด ์์ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด์ ๋น๊ต๋์์ธ ๋ ๊ฐ์ ๋
ธ๋๊ฐ ๋ชจ๋ null
์ธ ๊ฒฝ์ฐ์ ๋ ์ค ํ๋๋ง null
์ธ ๊ฒฝ์ฐ๋ฅผ ๋๋์ด์ ์๊ฐํด๋ณผ ์ ์๋ค.
- ๋ง์ฝ ๋ ๋ค null
์ธ ๊ฒฝ์ฐ, ์ด๊ฑด ๊ทธ๋ฅ ๋๊น์ง ์ฌ ๋๊น์ง ์์ชฝ TreeNode
๊ฐ ๋์ผํ๋ค๋ ๋ป์ด๋๊น true
๋ฅผ ๋ฆฌํดํ๋ค
- ๋ ์ค ํ๋๋ง null
์ธ ๊ฒฝ์ฐ, ์ด๊ฑด ๋ชจ์์ ์์ฒด๊ฐ ๋ ๊ฐ์ TreeNode
๊ฐ ๋ค๋ฅด๋ค๋ ๋ป์ด๋๊น false
๋ฅผ ๋ฆฌํดํ๋ค
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p==null && q==null) return true;
else if(p==null || q==null) return false;
if(p.val==q.val)
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
else return false;
}
์ฝ๋์ ์ ๋ถ๋ค! ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๊ฒ ํ์ด์ ํ๋ณตํ๋ค!
'์๊ณ ๋ฆฌ์ฆ > ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฐ] Leetcode 268 - Missing Number (0) | 2021.03.04 |
---|---|
[์๋ฐ] Leetcode 234 - Palindrome Linked List (0) | 2021.03.01 |
[์๋ฐ] ๋ฐฑ์ค 2042 - ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ (0) | 2021.01.06 |
[์๋ฐ] ๋ฐฑ์ค 4386 - ๋ณ์๋ฆฌ ๋ง๋ค๊ธฐ (0) | 2021.01.05 |
[์๋ฐ] ๋ฐฑ์ค 1197 - ์ต์ ์คํจ๋ ํธ๋ฆฌ (0) | 2021.01.05 |