在codewars裡升級吧~5:一道5級題程式碼及講解視訊
我在codewars裡講的東西說不定會在大專案裡重複,但是做大專案得到的東西遠遠要比練演算法題要多的多。還是做好再拖幾期的準備哦, 準時間是不可能說的,說完又要鴿了。
今天講的還是一道5級題。剛做出來時,覺得只有4行程式碼,太簡單沒有什麼好講的,於是決定順便講講別人都是如何解這道題的。
騰訊講解視訊連結
https://v.qq.com/x/page/c0733lw3d2z.html
b站講解視訊連結
https://www.bilibili.com/video/av27620749
題 目
You are given a non-null array of integers. Implement the method array To Tree which creates a binary tree from its values in accordance to their order, while creating nodes by depth from left to right.
SOLUTION
class Solution {
public:
static TreeNode* ArrayToTree_R(std::vector<int>& arr, int pointer) {
if (arr.size() <= pointer) return nullptr;
return new TreeNode(arr[pointer], ArrayToTree_R(arr, pointer * 2 + 1), ArrayToTree_R(arr, pointer * 2 + 2));
}
static TreeNode* arrayToTree(std::vector<int> arr) {
return ArrayToTree_R(arr, 0);
}
};