本文主要是介绍BUG未解之谜01-指针引用之谜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在leetcode里面刷题出现的问题,当我在sortedArrayToBST里面给root赋予初始值NULL之后,问题得到解决!
理论上root是未初始化的变量,然后我进入insert函数之后,root引用的内容也是未知值,因此无法给原来的二叉树完成初始化!
本题解决方案要么是给root赋予NULL初始值,要么是去掉if(!root)这一行!
class Solution {
public:TreeNode* sortedArrayToBST(vector<int>& nums) {TreeNode* root;int sz=nums.size();insert(nums,root,0,sz-1);return root;}void insert(vector<int>& v,TreeNode*& root, int l,int r){if(l<=r){int mid=(l+r)/2;if(!root)root=new TreeNode(v[mid]);insert(v,root->left,l,mid-1);insert(v,root->right,mid+1,r);}}};
这篇关于BUG未解之谜01-指针引用之谜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!