Skip to content

Commit 0ddb343

Browse files
committed
添加 104.二叉树的最大深度 go版本
1 parent be0ef14 commit 0ddb343

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

problems/0104.二叉树的最大深度.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,55 @@ Python:
284284

285285
Go:
286286

287+
```go
288+
/**
289+
* Definition for a binary tree node.
290+
* type TreeNode struct {
291+
* Val int
292+
* Left *TreeNode
293+
* Right *TreeNode
294+
* }
295+
*/
296+
func max (a, b int) int {
297+
if a > b {
298+
return a;
299+
}
300+
return b;
301+
}
302+
// 递归
303+
func maxDepth(root *TreeNode) int {
304+
if root == nil {
305+
return 0;
306+
}
307+
return max(maxDepth(root.Left), maxDepth(root.Right)) + 1;
308+
}
309+
310+
// 遍历
311+
func maxDepth(root *TreeNode) int {
312+
levl := 0;
313+
queue := make([]*TreeNode, 0);
314+
if root != nil {
315+
queue = append(queue, root);
316+
}
317+
for l := len(queue); l > 0; {
318+
for ;l > 0;l-- {
319+
node := queue[0];
320+
if node.Left != nil {
321+
queue = append(queue, node.Left);
322+
}
323+
if node.Right != nil {
324+
queue = append(queue, node.Right);
325+
}
326+
queue = queue[1:];
327+
}
328+
levl++;
329+
l = len(queue);
330+
}
331+
return levl;
332+
}
333+
334+
```
335+
287336

288337
JavaScript
289338
```javascript

0 commit comments

Comments
 (0)