-2
我在編程上並不是一個新手,我已經編程了近三年了。但我仍然對理解和設計遞歸程序感到沮喪。有時我需要寫下整個過程,這需要花費很多時間。 說這個節目: 轉換排序數組平衡二叉搜索樹設計一個遞歸程序
TreeNode* sortedArrayToBST(vector<int>& nums) {
return help(nums, 0, nums.size()-1);
}
TreeNode* help(vector<int> &nums, int start, int end){
int size=end-start;
if(size<0) return NULL;
if(size==0) return new TreeNode(nums[start]);
int mid=(start+end)/2;
TreeNode* root=new TreeNode(nums[mid]);
root->left=help(nums, start, mid-1);
root->right=help(nums, mid+1, end);
return root;
}
我有一個非常困難的時間跟蹤對樹的形式....而且我絕對不能設計一個這樣的程序我自己。我已經看過30個遞歸程序,我知道我需要多練習以熟悉它。只是想知道當您設計遞歸程序時您的思維過程如何,以及您如何快速理解遞歸程序。 很多很多謝謝!
你的問題是關於如何遞歸編程還是它是什麼特定的? –
試着先理解階乘函數。 https://en.wikipedia.org/wiki/Recursion_%28computer_science%29 – Matsmath
這是關於如何遞歸編程,我只是用這個問題作爲例子 –