你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
题目来源:根据二叉树创建字符串
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private StringBuilder sb=new StringBuilder();
public String tree2str(TreeNode t) {
if(t==null){
return "";
}
helper(t);
sb.deleteCharAt(0);
sb.deleteCharAt(sb.length()-1);
return sb.toString();
}
public void helper(TreeNode t){
if(t==null){
return;
}
sb.append("(");
sb.append(t.val);
helper(t.left);
if(t.left==null&&t.right!=null){
sb.append("()");
}
helper(t.right);
sb.append(")");
}
}