LeetCode 559: Maximum Depth of N-ary Tree

Publish Date : 2020-07-30 14:56

題目:

Given a n-ary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

範例:

Input: root = [1,null,3,2,4,null,5,6]
Output: 3

解法:
不管是幾個n-ary tree
就是要找出最大深度
tree的解法通常都是要用遞迴
這次也不例外

在一層遞迴中
要回傳所有子節點的最大深度加上自己這一層的深度

程式碼

/**
 * Definition for a Node.
 * type Node struct {
 *     Val int
 *     Children []*Node
 * }
 */
func maxDepth(root * Node) int {
    if root == nil {
        return 0
    }
    depth: = 1
    for _, node: = range root.Children {
        depth = max(maxDepth(node) + 1, depth)
    }
    return depth
}
func max(src1 int, src2 int) int {
    if (src1 > src2) {
        return src1
    } else {
        return src2
    }
}