力扣刷题的时候,自己在本地上调试很不方便,因为传入变量是一棵树,但是力扣给的示例是一个数组,所以写了这么一个函数。
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
TreeNode* creat(vector<int> n,int index){
if(index >= n.size()||n[index]==NULL) return nullptr;
TreeNode* root=new TreeNode(n[index]);
root->left=creat(n,2*index+1);
root->right=creat(n,2*index+2);
return root;
}
int main()
{
vector<int> n={1,2,3,4,NULL,5};
TreeNode* root=creat(n,0);
return 0;
}
但力扣中数组的NULL不是大写,这会导致编译器无法识别,请改成大写的NULL(在编译器中转化为int型为0,有需要可以改用其他代替)。
如果有帮助到你,请点赞+收藏+关注哟,谢谢大家,祝你们刷题愉快!