• leetcode 44:construct-binary-tree-from-preorder-and-inorder


    题目描述

    给出一棵树的前序遍历和中序遍历,请构造这颗二叉树
    注意:
    可以假设树中不存在重复的节点
    题目分析:
    这道题和leetcode 43:construct-binary-tree-from-inorder-and-postorder简直一模一样的,只是后续遍历换成了前序遍历,前序遍历的特点就是前序遍历的第一个节点就是根节点,其他逻辑跟43题一模一样。
    代码如下:
     1 TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
     2         if(inorder.size() == 0)
     3             return NULL;
     4         TreeNode* head = new TreeNode(preorder[0]);
     5         int index = 0;
     6         for(int i = 0;i < inorder.size();i++)
     7         {
     8             if(inorder[i] == preorder[0])
     9             {
    10                 index = i;
    11                 break;
    12             }
    13         }
    14         vector<int> left_preOrder,right_preOrder,left_inOrder,right_inOrder;
    15         for(int i = 0;i < index;i++)
    16         {
    17             left_preOrder.push_back(preorder[i + 1]);
    18             left_inOrder.push_back(inorder[i]);
    19         }
    20         for(int i = index + 1;i <inorder.size();i++)
    21         {
    22             right_inOrder.push_back(inorder[i]);
    23             right_preOrder.push_back(preorder[i]);
    24         }
    25         
    26         head->left = buildTree(left_preOrder,left_inOrder);
    27         head->right = buildTree(right_preOrder, right_inOrder);
    28         return head;
    29     }
  • 相关阅读:
    zipfile和tarfile的简单使用方法
    RabbitMQ安装
    postman接口自动化
    linux命令
    redis安装部署和使用
    nmon使用
    jdk自带监控工具配置使用
    修改本机mac
    hashlib模块,md5加密
    tomcat部署
  • 原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13512519.html
Copyright © 2020-2023  润新知