public static Node BuildExprTree(ArrayList<String> tokens){
		Node root = null;
		Node cur = null;
		Node parentNode = null;
		boolean isLastOp = false;
		
		// Loop to take next token
		for(int i = 0; i < tokens.size(); i++){
			// Skip some nodes
			if(tokens.get(i).equals("("))
				continue;
			else if(tokens.get(i).equals(")")){
				parentNode = parentNode.parent;
				if(parentNode == null)
					break;
				else
					continue;
			}
			
			// Root node
			if(i == 0){
				root = GiveMeNode(tokens.get(i));
				parentNode = root;
				isLastOp = true;
			}
			// non-root node
			else{
				cur = GiveMeNode(tokens.get(i));
				cur.parent = parentNode;
				parentNode.children.add(cur);
				if(cur.type > 0)
					parentNode = cur;
			}			
		}
		
		return root;
	}