1. 程式人生 > >指向struct 的指標(函式內)

指向struct 的指標(函式內)

  • }; / class Solution { public: typedef vector::iterator pos_t; TreeNode sortedArrayToBST(pos_t b, pos_t e) { int n=distance(b,e); if(!n) return 0; TreeNode* res=new TreeNode(0); if (n==1) { res->val=b; return res; } auto mid=next(b,n/2); res->val=mid; res->left=sortedArrayToBST(b,mid); res->right=sortedArrayToBST(next(mid),e); return res; } TreeNode
    sortedArrayToBST(vector& nums) { return sortedArrayToBST(begin(nums), end(nums)); } }; 迭代器的效率要比單純使用指標要高 TreeNode
    res=new TreeNode(0); 此處需要使用new,而不能使用如下程式碼: TreeNode current(0); TreeNode *test = &current; 的原因是,TreeNode current是區域性變數,可以作值返回,不能作地址返回,其地址指向的值在解構函式(destructor)中被釋放調了,所以呼叫指標會出錯。 另外,使用new後,最好在解構函式中使用delete將空間釋放掉。