package com.interview.flag.g;
import com.interview.leetcode.utils.TreeNode;
import com.interview.leetcode.utils.TreeNodePrinter;
/**
* Created_By: stefanie
* Date: 15-1-26
* Time: 下午4:59
*/
public class G32_BuildTree {
static final char LEFT = '?';
static final char RIGHT = ':';
int index = 0;
public TreeNode build(String str) {
this.index = 0;
return buildRecursive(str);
}
private TreeNode buildRecursive(String str){
TreeNode node = new TreeNode(str.charAt(index++));
if(index == str.length() || str.charAt(index) != LEFT) return node;
index++;
node.left = buildRecursive(str);
index++;
node.right = buildRecursive(str);
return node;
}
public static void main(String[] args){
G32_BuildTree builder = new G32_BuildTree();
TreeNode root = builder.build("a?b?c:d:e");
TreeNodePrinter.print(root);
root = builder.build("a?b:c?d:e");
TreeNodePrinter.print(root);
}
}