Acorns | Software Engineer | Phone Interview
Anonymous User
546

Given access to a node, write a function to print the pre order for the binary tree

#1 = Brute force method = preorder : node -> left -> right ; depth first search ; stack
public class TreeNode
{
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int val = 0, TreeNode left = null, TreeNode right = null)
{
this.val = val;
this.left = left;
this.right = right;
}
}

public class Solution {
public IList PreorderTraversal(TreeNode root) {
if (root == null) return new List();
List result = new List();
Stack storage = new Stack();
storage.Push(root);

            while (storage.Count > 0) 
            {
                TreeNode temp = storage.Pop();
                result.Add(temp.val);
                if (temp.right != null) storage.Push(temp.right);
                if (temp.left != null) storage.Push(temp.left);

            }
            return result;
}

}

#2 = Opitmized : In-place using recursion

function printPreorder(node : Node) : void
{
if(Node != null)
{
Console.WriteLine ("printing elements" + Node.data);
if (Node.left != null) printPreorder(Node.left);
if (Node.right != null) printPreorder(Node.right);
}
}

Comments (2)