Convert Sorted List to Binary Search Tree
来源:互联网 发布:linux内核进程调度 编辑:程序博客网 时间:2024/05/01 14:39
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
这道题和之前数组的那题,基本的思想是一样的,都是要找到最中间的那个数,作为根节点。这是对于List,该如何去寻找。我们选择遍历list一遍。
然后得到该链表的长度。以及下一次链表起始的位置,结束的位置。
/** * 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: int getLen(ListNode *node) { int len = 0; while(node) { len++; node = node->next; } return len; } TreeNode *solve(ListNode *node, int l, int r) { if (l > r) return NULL; int mid = (l + r) / 2; ListNode *p = node; for(int i = l; i < mid; i++) p = p->next; TreeNode *leftNode = solve(node, l, mid - 1); TreeNode *rightNode = solve(p->next, mid + 1, r); TreeNode *tNode = new TreeNode(p->val); tNode->left = leftNode; tNode->right = rightNode; return tNode; } TreeNode *sortedListToBST(ListNode *head) { int len = getLen(head); return solve(head, 0, len - 1); }};
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
- 生活中的磨难
- 空指针、void*指针、new及delete
- Python中的matplotlib用法(转载)
- MAC 设置环境变量path的几种方法
- html5中的number
- Convert Sorted List to Binary Search Tree
- Java的网络编程初识
- CentOS5下编译安装Heartbeat3
- Linux rpm 命令参数使用详解[介绍和应用]
- mac下使用eclipse导入项目出错mvn命令找不到
- 感觉好看的网站
- 关闭文件流
- input file控件限制上传文件类型
- Oracle常用命令笔记