์ด์ฉ๋ค ๋ฉด์ ์ด ์กํ์ ๋ฐ๋ฑ์ ๋ถ๋จ์ด์ง ๋๋์ผ๋ก ๋ถ๋ด๋ถ๋ด ๋ฌธ์ ํธ๋์ค ใ
์น๊ตฌํํ ๋ฆฌํธ์ฝ๋ ์ถ์ฒ ๋ฐ์์ 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 |