package LeetCode_559 import java.util.* /** * 559. Maximum Depth of N-ary Tree * https://leetcode.com/problems/maximum-depth-of-n-ary-tree/description/ * * 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). * */ class Node(var `val`: Int) { var children: List<Node?> = listOf() } class Solution { /** * solution: BFS, Time complexity:O(n), Space complexity:O(n) * */ fun maxDepth(root: Node?): Int { if (root == null) { return 0 } var res = 0 val queue = LinkedList<Node>() queue.offer(root) while (queue.isNotEmpty()){ res++ val size = queue.size for (i in size-1 downTo 0){ val cur = queue.poll() if (cur!=null){ for (item in cur.children){ queue.offer(item) } } } } return res } }