#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
struct ListNode {
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
};
class Solution {
public:
TreeNode* create(vector<int>& nums, int low, int high){
if(low > high) return NULL;
int mid = (high + low)/2;
TreeNode* root = new TreeNode(nums[mid]);
root->left = create(nums, low, mid-1);
root->right = create(nums, mid+1, high);
return root;
}
TreeNode* sortedArrayToBST(vector<int>& nums) {
return create(nums, 0, nums.size()-1);
}
};
int main()
{
Solution CT;
ListNode head = new ListNode(0);
cin>>head;
vector<int> ans;
while(head){
ans.pushback(head->next);
head=head->next;
}
TreeNode res = new TreeNode(0);
res=CT.sortedArrayToBST(ans);
}
用链表构造一颗AVL的样子,不需要排序
最新推荐文章于 2024-05-10 09:36:12 发布