示例#1
0
        public int MaxDepth(Node root)
        {
            _maxDepth = 0;

            DFS(root, 0);

            return(_maxDepth);
        }
示例#2
0
        /// <summary>
        /// 深度优先遍历(递归)
        /// </summary>
        /// <param name="root"></param>
        /// <param name="v"></param>
        private void DFS(Node root, int v)
        {
            if (root != null)
            {
                v++;
                if (v > _maxDepth)
                {
                    _maxDepth = v;
                }

                if (root.children != null)
                {
                    foreach (var child in root.children)
                    {
                        DFS(child, v);
                    }
                }
            }
        }