对于一棵二叉树我们定义它的括号序列为满足如下条件的序列:对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。同时为了避免重复,我们采用树的最小表示,即若一个节点只有一个儿子,那么这个儿子必为左儿子。给定一个括号序列,请将其反序列化为一棵树。 给定一个字符串A,代表括号序列。请返回反序列化后树的根节点指针,树中节点的值按生成节点的次序从1开始标号。
加载中...
import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }*/ public class SequenceToTree { public TreeNode toTree(String A) { // write code here } }
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class SequenceToTree { public: TreeNode* toTree(string A) { // write code here } };
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class SequenceToTree: def toTree(self, A): # write code here
/* public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode (int x) { val = x; } }*/ class SequenceToTree { public TreeNode toTree(string A) { // write code here } }