美文网首页
109. Convert Sorted List to Bina

109. Convert Sorted List to Bina

作者: juexin | 来源:发表于2017-01-07 14:11 被阅读0次

    Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

    class Solution {
    public:
        TreeNode* createTree(vector<int>& nums,int left,int right)
        {
            if(left>right)
              return NULL;
              
            int mid = (left+right)>>1;
            TreeNode* leftNode = createTree(nums,left,mid-1);  //创建左子树
            TreeNode* rightNode = createTree(nums,mid+1,right);//创建右子树
            
            TreeNode* node = new TreeNode(nums[mid]);
            node->left = leftNode;
            node->right = rightNode;
            
            return node;
        }
        
        TreeNode* sortedListToBST(ListNode* head) {
            vector<int> nums;
            ListNode* p = head;
            while(p!=NULL)
            {
                nums.push_back(p->val);
                p = p->next;
            }
            return createTree(nums,0,nums.size()-1);
        }
    };
    

    相关文章

      网友评论

          本文标题:109. Convert Sorted List to Bina

          本文链接:https://www.haomeiwen.com/subject/owdfbttx.html