假设一棵树的每个node都有不同的标号,给定后序遍历和前序遍历,不同的树有多少种?
思路:给定中序遍历能确定树的具体结构,是因为可以确定到底是左子树还是右子树,而之给定preorder和pastorder,则不能确定,这也是为什么会出现不同树结构的原因。
只有 post 和 pre 那么主要问题就是没有办法处理只有一个subtree的 node,因为 这种情况 不知道subtree 究竟是这个node的left 还是right subtreee ,
也就是说其实这道题要判断遍历中存在着多少个只有一棵子树的情况。对于前序遍历,如果一个结点的下个结点等于后序遍历中对应结点的前一个结点的话,那么这个结点就是根节点且其只有一个子树。假设account 初始化为1,出现一个只有一棵子树的情况,就把account*2(每次会出现两种不同的情况)。