Convert Sorted List to Binary Search Tree
来源:互联网 发布:爵迹 抄袭 知乎 编辑:程序博客网 时间:2024/06/01 13:39
一、概述
平衡二叉树是一颗n个节点的高度为lgn的二叉查找树,严格维持节点的左右节点数差的绝对值小于等于1
对于一个已经排好序的链表来说,只需要找到中间点,把其当做root,其左边链表为root的left节点,其右边链表为root的right节点,递归构造就行
二、代码
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public: TreeNode* sortedListToBST(ListNode* head) { TreeNode *root = NULL; if (head != NULL) { ListNode *slow, *fast, *pre; slow = fast = head; pre = NULL; while (fast->next && fast->next->next) { pre = slow; slow = slow->next; fast = fast->next->next; } if (pre != NULL) pre->next = NULL; else head = NULL; root = new TreeNode(slow->val); root->left = sortedListToBST(head); root->right = sortedListToBST(slow->next); } return root; }};
0 0
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- convert sorted list to binary search tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Linux打印系统CUPS原理分析
- 0xBenchmark中垃圾回收测试模块的分析及改进
- AngularJS 与 RequireJs 集成
- AS3 通过 TCP/IP 协议控制WatchOut播放
- Java 逻辑运算符
- Convert Sorted List to Binary Search Tree
- 多个WEB服务器,图片同步方法
- 【uploadify】初始化请求当前页错误解决
- OpenSSl 生成证书
- 详解Linux-I2C驱动
- Linux下基于Maven的自动化打包发布项目
- C语言实现单链表节点的删除(不带头结点)
- Android平台类加载流程源码分析
- 腾讯后台开发面试题及答案