zoukankan      html  css  js  c++  java
  • [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal

    Given preorder and inorder traversal of a tree, construct the binary tree.

    Note:
    You may assume that duplicates do not exist in the tree.

    树的递归

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     TreeNode *createTree(vector<int> &preorder, int preBeg, int preEnd, vector<int> &inorder, int inBeg, int inEnd)
    13     {
    14         if (preBeg > preEnd)
    15             return NULL;
    16             
    17         int root = preorder[preBeg];
    18         int index;
    19         for(int i = inBeg; i <= inEnd; i++)
    20             if (root == inorder[i])
    21             {
    22                 index = i;
    23                 break;
    24             }
    25         
    26         int len = index - inBeg;
    27         TreeNode *left = createTree(preorder, preBeg + 1, preBeg + len, inorder, inBeg, index - 1);
    28         TreeNode *right = createTree(preorder, preBeg + len + 1, preEnd, inorder, index + 1, inEnd);
    29         
    30         TreeNode *node = new TreeNode(root);
    31         
    32         node->left = left;
    33         node->right = right;
    34         
    35         return node;        
    36     }
    37     
    38     TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) {
    39         // Start typing your C/C++ solution below
    40         // DO NOT write int main() function
    41         if (preorder.size() == 0)
    42             return NULL;
    43             
    44         TreeNode *head = createTree(preorder, 0, preorder.size() - 1, inorder, 0, inorder.size() - 1);
    45         
    46         return head;
    47     }
    48 };
  • 相关阅读:
    浅析跨域请求
    python虚拟环境--virtualenv
    centos7下使用yum安装pip
    centos下python安装与虚拟环境配置
    ES6基础语法
    CCI_chapter 19 Moderate
    CCI_chapter 16 Low level
    CCI_chapter 13C++
    CCI_chapter 8 Recurision
    LeetCode_Generate Parentheses
  • 原文地址:https://www.cnblogs.com/chkkch/p/2744747.html
Copyright © 2011-2022 走看看