国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

LintCode-排序列表轉換為二分查找樹分析及實例

2020-01-26 14:10:47
字體:
來源:轉載
供稿:網友

給出一個所有元素以升序排序的單鏈表,將它轉換成一棵高度平衡的二分查找樹

您在真實的面試中是否遇到過這個題? 

分析:就是一個簡單的遞歸,只是需要有些鏈表的操作而已

代碼:

/**  * Definition of ListNode  * class ListNode {  * public:  *  int val;  *  ListNode *next;  *  ListNode(int val) {  *   this->val = val;  *   this->next = NULL;  *  }  * }  * Definition of TreeNode:  * class TreeNode {  * public:  *  int val;  *  TreeNode *left, *right;  *  TreeNode(int val) {  *   this->val = val;  *   this->left = this->right = NULL;  *  }  * }  */ class Solution { public:  /**   * @param head: The first node of linked list.   * @return: a tree node   */  TreeNode *sortedListToBST(ListNode *head) {   // write your code here   if(head==nullptr)    return nullptr;   int len = 0;   ListNode*temp = head;   while(temp){len++;temp = temp->next;};   if(len==1)   {    return new TreeNode(head->val);   }   else if(len==2)   {    TreeNode*root = new TreeNode(head->val);    root->right = new TreeNode(head->next->val);    return root;   }   else   {    len/=2;    temp = head;    int cnt = 0;    while(cnt<len)    {     temp = temp->next;     cnt++;    }    ListNode*pre = head;    while(pre->next!=temp)     pre = pre->next;    pre->next = nullptr;    TreeNode*root = new TreeNode(temp->val);    root->left = sortedListToBST(head);    root->right = sortedListToBST(temp->next);    return root;       }  } }; 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 无棣县| 洮南市| 清苑县| 赤壁市| 浮山县| 明溪县| 静乐县| 叶城县| 民勤县| 民权县| 工布江达县| 安多县| 邮箱| 都安| 甘德县| 中山市| 兴国县| 新和县| 泸水县| 通许县| 贵溪市| 彩票| 威远县| 常州市| 仁布县| 长子县| 隆尧县| 凤山县| 改则县| 西吉县| 永吉县| 德庆县| 密云县| 隆化县| 右玉县| 福建省| 琼中| 乐陵市| 吐鲁番市| 观塘区| 南岸区|