public IList <int> Postorder(NArrayNode root) { IList <int> values = new List <int>(); PostorderHelper(root, ref values); return(values); }
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); }
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); }
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); } }