【Leetcode】Convert Sorted List to Binary Search Tree
2015-11-18 22:42
429 查看
题目链接:https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/
题目:
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
思路:
简单起见,先把链表值存到数组中,用数组递归感觉会简单点。。
算法:
题目:
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
思路:
简单起见,先把链表值存到数组中,用数组递归感觉会简单点。。
算法:
public int getListLength(ListNode head) { int length = 0; ListNode p = head; while (p != null) { length++; p = p.next; } return length; } public TreeNode sortedListToBST(ListNode head) { ListNode p = head; int i = 0; int n[] = new int[getListLength(head)]; while (p != null) { n[i] = p.val; i++; p = p.next; } return sortedArrayToBST(n); } /** * Convert Sorted Array to Binary Search Tree */ public TreeNode sortedArrayToBST(int[] nums) { if (nums == null || nums.length == 0) { return null; } return test(nums, 0, nums.length - 1); } public TreeNode test(int[] nums, int left, int right) { if (right < left) return null; int mid = (left + right) / 2; TreeNode root = new TreeNode(nums[mid]); root.left = test(nums, left, mid - 1); root.right = test(nums, mid + 1, right); return root; }
相关文章推荐
- Linux____scp+配置公钥无密登陆+cat+vi+创删文件/夹
- 南大软院21天大神养成计划-第二天
- 西门子与RS485:
- 排序算法重要知识点
- 路径规划算法初探
- ArcGIS中图象配准经验总结_扫描地形图的配准以及GPS数据的投点
- NSMutableArray常见用法
- UI第七天 UIScrollView UIPageControl
- 使用Bundle传递复杂数据
- 练习PYTHON之EPOLL
- android学习ViewPager的简单使用
- AngularJs angular.Module模块接口配置
- LeetCode 31 Next Permutation(下一个排列)
- 关于Vim
- AngularJs搭建项目
- ios开发在Xcode中如何给程序添加icon图标
- 互联网思维下运营商的服务变革
- Android快速开发系列 10个常用工具类
- ActiveMQ 中的消息持久化(一)
- Ubuntu 12.04 安装配置 Apache2