class Solution {
public:
TreeNode* sortedListToBST(ListNode* head) {
return BuildTree(head, nullptr);
}
TreeNode *BuildTree(ListNode* head, ListNode * tail){
if(head == tail) return nullptr;
ListNode *slow = head;
ListNode *fast = head;
while(fast != tail && fast->next != tail){
fast = fast->next->next;
slow = slow->next;
}
TreeNode *node = new TreeNode(slow->val);
node -> left = BuildTree(head,slow);
node -> right = BuildTree(slow->next,tail);
return node;
}
有序链表转换二叉搜索树
最新推荐文章于 2023-04-22 22:37:01 发布