zoukankan      html  css  js  c++  java
  • LeetCode: 106_Construct Binary Tree from Inorder and Postorder Traversal | 根据中序和后序遍历构建二叉树 | Medium

    要求:根据中序和后序遍历序列构建一棵二叉树

    代码如下:

     1 struct TreeNode {
     2     int            val;
     3     TreeNode    *left;
     4     TreeNode    *right;
     5     TreeNode(int x): val(x),left(NULL), right(NULL) {}
     6 };
     7 
     8 typedef vector<int>::iterator Iter;
     9 
    10 TreeNode *buildTreeFromInorderPostorder(vector<int> &inorder, vector<int> &postorder)
    11 {
    12     return buildBinaryTreeResur(inorder.begin(), inorder.end(), postorder.begin(), postorder.end());
    13 }
    14 
    15 TreeNode *buildBinaryTreeResur(Iter istart, Iter iend, Iter pstart, Iter pend)
    16 {
    17     if (istart == iend || pstart == pend)
    18         return NULL;
    19     int ival = *(pend-1);
    20     Iter ptemp = find(istart, iend, ival);
    21     TreeNode *res = new TreeNode(ival);
    22     res->left = buildBinaryTreeResur(istart, ptemp, pstart, pstart+(ptemp-istart));
    23     res->right = buildBinaryTreeResur(ptemp+1, iend, pstart+(ptemp-istart), pend-1);
    24     return res;
    25 }
  • 相关阅读:
    spring注解-事务
    docker 安装
    docker 简单介绍
    jupyter配置
    docker 桌面镜像内安装gui程序启动报错
    Linux下安装matlab
    拉取cmake镜像并测试
    桌面镜像安装gui程序
    docker + pycharm 运行
    docker + vscode 运行
  • 原文地址:https://www.cnblogs.com/bakari/p/4126702.html
Copyright © 2011-2022 走看看