zoukankan      html  css  js  c++  java
  • LeetCode-Convert Sorted List to Binary Search Tree

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

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        TreeNode * CreateNode(vector<int>&vals,int start,int end){
            if(start>end)return NULL;
            int mid=(start+end)/2;
            TreeNode* ret=new TreeNode(vals[mid]);
            ret->left=CreateNode(vals,start,mid-1);
            ret->right=CreateNode(vals,mid+1,end);
        }
        TreeNode *sortedListToBST(ListNode *head) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            vector<int> values;
            while(head!=NULL){
                values.push_back(head->val);
                head=head->next;
            }
            return CreateNode(values,0,values.size()-1);
        }
    };
    
  • 相关阅读:
    关于IOS6屏幕旋转的问题
    学习备忘录
    关于多种手势问题
    关于 IOS中 绘制图形的问题
    爱的意义
    IOS支付SDK
    IOS开发特别备注
    ios相关教程
    iOS7光标问题
    收藏网站
  • 原文地址:https://www.cnblogs.com/superzrx/p/3323545.html
Copyright © 2011-2022 走看看