-
[LeetCode] 104. Maximum Depth of Binary Tree c++Coding Test/LeetCode 2022. 12. 20. 12:06728x90
- 문제
Given the root of a binary tree, return its maximum depth.
A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Input: root = [3,9,20,null,null,15,7] Output: 3
트리의 maximum depth를 구하는 문제이다.
- 문제 해결
int maxDepth(TreeNode* root) { if (!root) { return 0; } int maxLeft = maxDepth(root->left); int maxRight = maxDepth(root->right); return max(maxLeft, maxRight) + 1; }
LC, RC 노드의 max depth를 가지고 P(부모)의 max depth를 구하는 재귀함수를 이용한 풀이이다.
다른 풀이
DFS 방식으로 푸는 방법도 있습니다.
int maxDepth(TreeNode* root) { if (root == NULL) return 0; stack<pair<TreeNode*, int>> s; s.push({root, 1}); int len = 1; while (!s.empty()) { pair<TreeNode*, int> front = s.top(); s.pop(); len = max(len, front.second); if (front.first->left) s.push({front.first->left, front.second+1}); if (front.first->right) s.push({front.first->right, front.second+1}); } return len; }
728x90'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 559. Maximum Depth of N-ary Tree c++ (0) 2022.12.20 [LeetCode] 637. Average of Levels in Binary Tree c++ (0) 2022.12.20 [LeetCode] 94. Binary Tree Inorder Traversal c++ (0) 2022.12.19 [LeetCode] 226. Invert Binary Tree c++ (1) 2022.12.19 [LeetCode] 1022. Sum of Root To Leaf Binary Numbers c++ (0) 2022.12.19