109. Convert Sorted List to Binary Search Tree
来源:互联网 发布:异地淘宝客服招聘 编辑:程序博客网 时间:2024/06/07 12:27
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>>的办法处理
public class Solution { public TreeNode sortedListToBST(ListNode head){int[] nums=new int[30000];int cnt=0;while(head!=null){nums[cnt++]=head.val;head=head.next;}return sortedArrayToBST(nums, cnt);}private TreeNode sortedArrayToBST(int[] nums,int len){if (len == 0)return null;return build(0, len - 1, nums);}private TreeNode build(int start, int end, int[] nums){if (start == end)return new TreeNode(nums[start]);if (start > end)return null;int mid = (start + end) >> 1;int num = nums[mid];TreeNode t = new TreeNode(num);t.left = build(start, mid - 1, nums);t.right = build(mid + 1, end, nums);return t;}}
另外不取出来直接处理的版本
https://discuss.leetcode.com/topic/8141/share-my-o-1-space-and-o-n-time-java-code/2
private ListNode node;public TreeNode sortedListToBST(ListNode head) {if(head == null){return null;}int size = 0;ListNode runner = head;node = head;while(runner != null){runner = runner.next;size ++;}return inorderHelper(0, size - 1);}public TreeNode inorderHelper(int start, int end){if(start > end){return null;}int mid = start + (end - start) / 2;TreeNode left = inorderHelper(start, mid - 1);TreeNode treenode = new TreeNode(node.val);treenode.left = left;node = node.next;TreeNode right = inorderHelper(mid + 1, end);treenode.right = right;return treenode;}
0 0
- Tree-----109. 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
- CodeForces 501A Contest
- hdoj 1695 GCD <用容斥求区间素数对>
- Servlet---默认Servlet/线程安全问题(网页串数据)
- android (八)Binder浅谈
- eclipse配置折叠/展开代码快捷键
- 109. Convert Sorted List to Binary Search Tree
- HDU - 3555 Bomb(数位dp)
- Hbase Architecture[上]
- 使用 java 命令编译运行 java 程序
- 东北林业大 564 汉诺塔
- 手把手教你OA选型
- Python学习之私有函数、私有变量
- 密码 hd 2043
- 今天给大家展示一下点击按钮然后切换场景这个代码