๋ฌธ์ 
ํ์ด ๊ณผ์ 
์ด์งํธ๋ฆฌ์ ์ง๋ฆ์ ๊ตฌํ๋ ๋ฌธ์ ์
๋๋ค. 
์ด์งํธ๋ฆฌ ํน์ ์ผ๋ฐ์ ์ธ ํธ๋ฆฌ์ ์ง๋ฆ์ ์ฐพ๊ธฐ ์ํด์๋ ์์์ ๋ ์ ์  ์ฌ์ด์ ๊ฐ์ ์ ๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง์ ๊ฒฝ๋ก๋ฅผ ์์๋ด์ผํฉ๋๋ค. 
์ฐ์  root ๋ฅผ ๋ฃจํธ ๋
ธ๋๋ก ๊ฐ์ง๋ ํธ๋ฆฌ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ง๊ฐ ์กด์ฌํ  ์ ์์ต๋๋ค.
  1
 / \  
 2  3
 /\  
4  5      1
   /  
  2  
 / \  
4   5  ์ ๊ทธ๋ฆผ์์๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ๊ฐ์ ํ์ง๋ง ์ผ๋ฐ์ ์ธ ํธ๋ฆฌ์์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
๋ฐ๋ผ์ ํ๋์ ์๋ธํธ๋ฆฌ์์ ๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก(์ง๋ฆ)๋ ์๋
ธ๋ - ์๋
ธ๋ ํน์ ๋ฃจํธ๋
ธ๋ - ์๋
ธ๋ ์ ํํ๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. ๋ฃจํธ๋
ธ๋ - ์๋
ธ๋ ์ ๊ฒฝ์ฐ ํธ๋ฆฌ์ ๋์ด๋ฅผ ๊ตฌํ๋ฉด ๋์ง๋ง ์๋
ธ๋ - ์๋
ธ๋ ์ ๊ฒฝ์ฐ ๋ด๋ถ ๋
ธ๋ ์ฌ์ด์์
๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก๊ฐ ํ์ฑ๋  ์ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์์ด๋์ด๊ฐ ํ์ํฉ๋๋ค. 
์ด๋ฅผ ์ฝ๊ฒ ๊ตฌํ๊ธฐ ์ํด์๋ ๋ฃจํธ๋
ธ๋ - ์๋
ธ๋ ๋ฅผ ๊ตฌํ๊ธฐ ์ํด ํธ๋ฆฌ์ ๋์ด๋ฅผ ๊ตฌํ๋ ์ฌ๊ทํจ์ ๋ด์์
๊ฐ๊ฐ์ ์๋ธํธ๋ฆฌ์ ๋ฃจํธ๋
ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ ์๋ธํธ๋ฆฌ ๋์ด + ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ๋์ด ์ ๊ฐ์ ์ ์ญ๋ณ์์ ๊ฐฑ์ ์์ผ์ค๋๋ค. 
์ต์ข
์ ์ผ๋ก๋ ์ฌ๊ท์ ์ธ ํธ์ถ ๋๋ถ์ ๊ฐ์ฅ ๊ธด ์๋
ธ๋ - ์๋
ธ๋ ๊ธธ์ด๋ฅผ ๊ตฌํ  ์ ์๊ณ  ์ด๋ฅผ ํธ๋ฆฌ์ ๋์ด์ ๋น๊ตํด์ฃผ๋ฉด ๋ฉ๋๋ค. 
์ฝ๋
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var diameterOfBinaryTree = function (root) {
  let longest = 0; // ๊ฐ์ฅ ๊ธด ์-์ ๊ฒฝ๋ก ๊ธธ์ด
  function dfs(root) {
    if (!root) {
      return 0;
    }
    const leftHeight = dfs(root.left);
    const rightHeight = dfs(root.right);
    longest = Math.max(longest, leftHeight + rightHeight);
    return Math.max(leftHeight, rightHeight) + 1;
  }
  const h = dfs(root) - 1;
  return Math.max(longest, h);
};'๐ algorithm > leetcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| LeetCode 876 - Middle of the Linked List (Easy) (0) | 2021.03.02 | 
|---|---|
| LeetCode 221 - Maximal Square (Medium) (0) | 2021.03.02 | 
| LeetCode 283 - Move Zeroes (Medium) (0) | 2021.03.02 | 
| LeetCode 678 - Valid Parenthesis String (Medium) (0) | 2021.03.02 | 
| LeetCode 1094 - Car Pooling (Medium) (0) | 2021.03.02 | 
										
									
										
									
										
									
										
									
๐ฌ ๋๊ธ