반응형
https://leetcode.com/problems/maximum-depth-of-binary-tree/
dfs로 해결한 문제였습니다.
📕 풀이방법
📔 풀이과정
terminal node에서 0을 반환하고 더 깊은 depth로부터 1씩 더해 가장 큰 depth를 반환하는 dfs함수를 구현합니다.
📔 정답출력
dfs함수의 결과를 반환합니다.
📕 Code
📔 C++
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
int dfs(TreeNode* tree, int depth) {
if(tree == nullptr) return 0;
return max(dfs(tree->left, depth + 1), dfs(tree->right, depth + 1)) + 1;
}
int maxDepth(TreeNode* root) {
return dfs(root, 1);
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > DFS' 카테고리의 다른 글
(C++) - LeetCode (easy) 700. Search in a Binary Search Tree (0) | 2023.06.15 |
---|---|
(C++) - LeetCode (easy) 404. Sum of Left Leaves (0) | 2023.03.05 |
(C++) - 백준(BOJ) 16929 : Two dots (0) | 2022.07.01 |
(C++) - 백준(BOJ) 17070 : 파이프 옮기기 1 (0) | 2021.10.21 |
(C++) - 백준(BOJ) 1595번 : 북쪽나라의 도로 (0) | 2021.09.24 |