public IList <int> Postorder(NArrayNode root)
        {
            IList <int> values = new List <int>();

            PostorderHelper(root, ref values);

            return(values);
        }
Exemplo n.º 2
0
        public int MaxDepth(NArrayNode root)
        {
            int depth = 0;

            MaxDepthHelper(root, 0, ref depth);

            return(depth);
        }
        private void PostorderHelper(NArrayNode root, ref IList <int> values)
        {
            if (root == null)
            {
                return;
            }

            foreach (var node in root.children)
            {
                PostorderHelper(node, ref values);
            }

            values.Add(root.val);
        }
Exemplo n.º 4
0
        public void PostorderTests()
        {
            N_AryTreePostorderTraversal obj = new N_AryTreePostorderTraversal();

            NArrayNode arrayNode =
                new NArrayNode(1, new List <NArrayNode>
            {
                new NArrayNode(3, new List <NArrayNode> {
                    new NArrayNode(5, new List <NArrayNode>()),
                    new NArrayNode(6, new List <NArrayNode>())
                }),
                new NArrayNode(2, new List <NArrayNode>()),
                new NArrayNode(4, new List <NArrayNode>())
            });

            obj.Postorder(arrayNode);
        }
Exemplo n.º 5
0
        public void MaxDepthHelper(NArrayNode root, int currentDepth, ref int depth)
        {
            if (root == null)
            {
                return;
            }

            currentDepth++;

            if (currentDepth > depth)
            {
                depth = currentDepth;
            }

            foreach (var node in root.children)
            {
                MaxDepthHelper(node, currentDepth, ref depth);
            }
        }