根据单链表构造二叉查找树 Convert Sorted List to Binary Search Tree
来源:互联网 发布:淘宝直通车几心可以开 编辑:程序博客网 时间:2024/05/17 06:20
问题:Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
可参考姐妹问题:根据有序数组构造二叉查找树 Convert Sorted Array to Binary Search Tree
思路:二叉查找树的构造往往伴随着二分查找的过程。这是一个单链表而不是数组。二分查找不好用。就用递归吧。每次找到链表的最中间结点, 作为树根节点,左右两侧作为左右孩子。
/** * 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 *sortedListToBST(ListNode *head) { if(head == NULL) return NULL; return fun(head, NULL); } TreeNode* fun(ListNode *head, ListNode *end) { if(head == end) return NULL; ListNode *p,*mid; p = mid = head; while(p != end && p->next != end) { p = p->next->next; mid = mid->next; } TreeNode *m = new TreeNode(mid->val); m->left = fun(head, mid); m->right = fun(mid->next, end); return m; }};
0 0
- 根据单链表构造二叉查找树 Convert Sorted List to Binary Search Tree
- 根据有序数组构造二叉查找树 Convert Sorted Array to Binary Search Tree
- 二叉树-Convert Sorted List to Binary Search Tree
- Leetcode 108 Convert Sorted Array to Binary Search Tree 有序数组构造平衡二叉查找树
- Leetcode 109 Convert Sorted List to Binary Search Tree 有序单链表构造平衡二插查找树
- LeetCode Convert Sorted List to Binary Search Tree(有序单链表转为平衡二叉树)
- leetcode 109. Convert Sorted List to Binary Search Tree 链表构造平衡二叉搜索树 + DFS
- 109.leetcode Convert Sorted List to Binary Search Tree(medium)[链表 平衡二叉搜索树 二分查找]
- 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
- poj 3377 Ferry Lanes
- hadoop hdfs 灾备、动态扩容测试
- 【AJAX进阶】--AJAX与DOM网页程序构建高手
- wince6.0中文内核定制
- 以后使用新博客去了
- 根据单链表构造二叉查找树 Convert Sorted List to Binary Search Tree
- 页框管理
- java 局部变量,类变量,实例变量的作用域,生命周期
- Visio 画流程图
- 为Visual Studio添加默认INCLUDE包含路径一劳永逸的方法(更新)
- Javafx利用fxml的方式添加对话框
- AC自动机
- 不同linux版本下内核/系统/软件的安装及查询
- ubuntu命令