leetcode 108. 将有序数组转换为二叉搜索树

leetcode 108. 将有序数组转换为二叉搜索树_第1张图片
始终使用数组中间的数为父节点,两边的子数组构成两个子树。

TreeNode* sortedArrayToBST(vector &nums)
	{
		int size_nums = nums.size();
		if (size_nums == 0)
		{
			return nullptr;
		}
		auto iter_mid = nums.begin() + (size_nums - 1) / 2;
		TreeNode *root = new TreeNode(*iter_mid);
		//TreeNode *p_left = sortedArrayToBST(vector(nums.begin(), iter_mid));
		//TreeNode *p_right = sortedArrayToBST(vector(iter_mid + 1, nums.end()));
		vectorA1(nums.begin(), iter_mid);
		vectorA2(iter_mid + 1, nums.end());
		TreeNode *p_left = sortedArrayToBST(A1);
		TreeNode *p_right = sortedArrayToBST(A2);
		root->left = p_left;
		root->right = p_right;
		return root;
	}

你可能感兴趣的:(LeetCode笔记)