public static void postOrderTraverseNoRecursion(TreeNode root){
		if(root==null) return;
		
		Stack<TreeNode> tmp=new Stack<TreeNode>();
		Stack<TreeNode> output=new Stack<TreeNode>();
		
		tmp.push(root);
		while(!tmp.isEmpty()){
			TreeNode node=tmp.pop();
			output.push(node);
			
			if(node.left!=null){
				tmp.push(node.left);
			}
			if(node.right!=null){
				tmp.push(node.right);
			}
		}
		
		while(!output.isEmpty()){
			visit(output.pop());
		}
	}