LeetCode Convert Sorted List to Binary Search Tree
来源:互联网 发布:数据挖掘与r语言 代码 编辑:程序博客网 时间:2024/06/07 14:50
题目
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
将排序好的链转换为二叉查找树。
问题和之前的相似,但是由于链不能随机访问,如果反复顺序读取相应位置代价太大,显然不可取。
递归求解,先递归求解左子树,同时修改根的位置。
代码:
/** * 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 *innerLTB(ListNode *&head,int begin,int end)//头,指针的引用,不断修改使在root使用时指向中间位置;头尾{if(begin>=end)return NULL;int mid=(begin+end)/2;//求中间位置TreeNode *left=innerLTB(head,begin,mid);//递归求左子树,由底向上TreeNode *root=new TreeNode(head->val);//构建中间节点root->left=left;head=head->next;//每次构建后链指针后移TreeNode *right=innerLTB(head,mid+1,end);//递归求右子树的节点root->right=right;return root;} TreeNode *sortedListToBST(ListNode *head) { int len=0;//求长度ListNode *h=head;while(h!=NULL){h=h->next;len++;}return innerLTB(head,0,len); }};
0 0
- 【LeetCode】Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- LeetCode[Tree]: Convert Sorted List to Binary Search Tree
- [leetcode][list][dfs] Convert Sorted List to Binary Search Tree
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode]Convert Sorted List to Binary Search Tree
- LeetCode : Convert Sorted List to Binary Search Tree
- [Leetcode] Convert Sorted List to Binary Search Tree
- Leetcode: Convert Sorted List to Balanced Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- leetcode 66: Convert Sorted List to Binary Search Tree
- leetcode Convert Sorted List to Binary Search Tree
- LeetCode Convert Sorted List to Binary Search Tree
- leetcode Convert Sorted List to Binary Search Tree
- LeetCode:Convert Sorted List to Binary Search Tree
- [LeetCode]Convert Sorted List to Binary Search Tree
- [Leetcode]Convert Sorted List to Binary Search Tree
- [leetcode]Convert Sorted List to Binary Search Tree
- Leetcode: Convert Sorted List to Binary Search Tree
- Ubuntu 12.04 64位安装Redmine+GIT+ReviewBoard
- Tomcat启动内存设置
- bzoj2286: [Sdoi2011消耗战] 虚树构造
- 利用NuSoap开发WebService(PHP)
- android 根据apk文件获取包名等信息 已经判断 指定 这个apk 是否安装过
- LeetCode Convert Sorted List to Binary Search Tree
- 分数拆分
- CSS的一些基础知识
- spring中强大的bean操作类BeanWrapper
- jquery Syntax error, unrecognized expression:的解决方法
- Linux文件系统损坏后的修复技巧详细介绍
- kali linux安装VM TOOLS
- All the Windows 10 Technical Preview Editions ISO Direct Download Links !
- java 基础 私有变量不可以继承吗?