feat: 104_maximum_depth_of_binary_tree
This commit is contained in:
		
							parent
							
								
									e07011a229
								
							
						
					
					
						commit
						4f2d4f58de
					
				
							
								
								
									
										35
									
								
								104_maximum_depth_of_binary_tree/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								104_maximum_depth_of_binary_tree/main.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| #include <bits/stdc++.h> | ||||
| using namespace std; | ||||
| 
 | ||||
| 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 maxDepth(TreeNode *root) { | ||||
|         unordered_map<TreeNode *, bool> visited; | ||||
|         int maxDepth = 0; | ||||
| 
 | ||||
|         function<void(TreeNode *, int)> dfs = [&](TreeNode *root, int currentDepth) { | ||||
|             if (!root) return; | ||||
| 
 | ||||
|             if (visited[root]) return; | ||||
|             visited[root] = true; | ||||
| 
 | ||||
|             maxDepth = max(maxDepth, currentDepth); | ||||
| 
 | ||||
|             dfs(root->left, currentDepth + 1); | ||||
|             dfs(root->right, currentDepth + 1); | ||||
|         }; | ||||
| 
 | ||||
|         dfs(root, 1); | ||||
| 
 | ||||
|         return maxDepth; | ||||
|     } | ||||
| }; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user