public void preOrderItr(Node root){
        Deque<Node> stack = new LinkedList<Node>();
        stack.addFirst(root);
        while(!stack.isEmpty()){
            root = stack.pollFirst();
            System.out.print(root.data + " ");
            if(root.right != null){
                stack.addFirst(root.right);
            }
            if(root.left!= null){
                stack.addFirst(root.left);
            }
        }
    }
Youtube link - https://youtu.be/nzmtCFNae9k
Youtube link - https://youtu.be/elQcrJrfObg
Youtube link - https://youtu.be/qT65HltK2uE
Youtube link - https://youtu.be/ZM-sV9zQPEs

http://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion/
http://www.geeksforgeeks.org/inorder-tree-traversal-without-recursion-and-without-stack/
http://www.geeksforgeeks.org/iterative-preorder-traversal/
src/com/interview/tree/TreeTraversals.java