https://leetcode.com/problems/maximum-depth-of-binary-tree/description
Q. 입력된 이진트리의 최대 depth를 구하라.
Solution.
depth를 구하는 경우는 깊이 우선 탐색을 통하는 경우와, 너비 우선 탐색을 통한
두가지 경우를 다 생각해 볼수 있다.
두 가지 다 크게 어렵지 않은 접근으로, 알아 둬야 할 필요가 있겠다.
깊이 우선 탐색.
int maxDepthHelper(TreeNode* node, int depth)
{
if (node == NULL) return depth;
++depth;
int leftD = maxDepthHelper(node->left, depth);
int rightD = maxDepthHelper(node->right, depth);
return max(leftD, rightD);
}
int maxDepth(TreeNode* root)
{
int ret = maxDepthHelper(root, 0);
return ret;
}
너비 우선 탐색
int maxDepth(TreeNode* root)
{
if (root == NULL) return 0;
queue<TreeNode*> qBuff;
qBuff.push(root);
int ret = 0;
while (!qBuff.empty())
{
int cnt = qBuff.size();
for (int k = 0; k < cnt; ++k)
{
TreeNode* cur = qBuff.front();
qBuff.pop();
if (cur->left != NULL) qBuff.push(cur->left);
if (cur->right != NULL) qBuff.push(cur->right);
}
++ret;
}
return ret;
}
'Leetcode > LeetCode75' 카테고리의 다른 글
[Binary Tree][DFS] 1448. Count Good Nodes in Binary Tree (1) | 2023.12.22 |
---|---|
[Binary Tree][DFS] [Easy] 872. Leaf-Similar Trees (1) | 2023.12.21 |
[Linked List][Medium] 2130. Maximum Twin Sum of a Linked List (1) | 2023.12.19 |
[Linked List][Easy] 206. Reverse Linked List (0) | 2023.12.18 |
[Linked List][Medium] 328. Odd Even Linked List (1) | 2023.12.17 |