代码:
下面展示一些 内联代码片
。
class Solution {
public:
TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
return Help(preorder,0,preorder.size()-1,inorder,0,inorder.size()-1);
}
TreeNode* Help(vector<int>& pre,int left,int right, vector<int>& ino,int left1,int right1) {
if(left>=pre.size()||left1>=ino.size()||left>right||left1>right1){
return NULL;
}
int value=pre[left];
TreeNode* node = new TreeNode(pre[left]);
int count=left1;
while(ino[count]!=value){
count++;
}
count=count-left1;
node>left=Help(pre,left+1,left+count,ino,left1,left1+count-1);
node>right=Help(pre,left+count+1,right,ino,left1+count+1,right1);
return node;
}
};
大佬思路:
链接: https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/solution/mian-shi-ti-07-zhong-jian-er-cha-shu-di-gui-fa-qin/.
另一位大佬的视频讲解:
链接: https://www.bilibili.com/video/BV1LJ411y7Xa?t=510.