博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode -day19 Convert Sorted List to Binary Search Tree
阅读量:6231 次
发布时间:2019-06-21

本文共 1262 字,大约阅读时间需要 4 分钟。

1、


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.

分析:将一个升序排列的链表转换为平衡二叉搜索树,採用递归的方式,先找到链表的中点,作为二叉树的根,然后递归求解左右子树。

例如以下:

class Solution {public:    TreeNode *sortedListToBST(ListNode *head) {        if(!head){            return NULL;        }        if(!head->next){            return new TreeNode(head->val);        }        ListNode* midNode = findMidNode(head);        TreeNode* root = new TreeNode(midNode->val);        TreeNode* leftSubTree = sortedListToBST(head);        TreeNode* rightSubTree = sortedListToBST(midNode->next);        if(leftSubTree){            root->left = leftSubTree;        }        if(rightSubTree){            root->right = rightSubTree;        }        return root;    }    ListNode* findMidNode(ListNode* head){        ListNode* node1 = head;        if(!node1->next){            return node1;        }        ListNode* node2 = head->next;        while(node2 && node2->next && node2->next->next){            node2 = node2->next;            node2 = node2->next;            node1 = node1->next;        }        ListNode* midNode = node1->next;        node1->next = NULL;        return midNode;    }};

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
高仿Instagram 页面效果android特效
查看>>
2016 年总结
查看>>
将String转化成Stream,将Stream转换成String
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>