你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
示例 1:
示例 2:
解法
class Solution {
private String res = "";
public String tree2str(TreeNode root) {
preOrder(root);
return res;
}
private void preOrder(TreeNode root) {
if (null == root) {
return;
}
res += root.val;
if (null != root.left) {
res += "(";
preOrder(root.left);
res += ")";
}
if (null != root.right) {
if (null != root.left) {
res += "(";
}
if (null == root.left) {
res += "()(";
}
preOrder(root.right);
res += ")";
}
}
}