문제
- 이진 트리에서 최대 깊이 구하기
구현
- 모든 가지를 탐색하여 깊이를 갱신 ( N )
시간 복잡도
- O(N)
코드
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func maxDepth(root *TreeNode) int { maxDepth := 0 searchTree(root, 1, &maxDepth) return maxDepth } func searchTree(node *TreeNode, depth int, maxDepth *int) { if node == nil { return } if depth > *maxDepth { *maxDepth = depth } searchTree(node.Left, depth+1, maxDepth) searchTree(node.Right, depth+1, maxDepth) }
'알고리즘' 카테고리의 다른 글
[LeetCode] 516. Longest Palindromic Subsequence (golang) (0) | 2021.06.14 |
---|---|
[LeetCode] 409. Longest Palindrome (golang) (0) | 2021.06.12 |
[LeetCode] 66. Plus One (golang) (0) | 2021.06.02 |
[LeetCode] 205. Isomorphic Strings (golang) (0) | 2021.06.02 |
[LeetCode] 572. Subtree of Another Tree (golang) (0) | 2021.06.01 |
댓글