Convert Sorted List to Binary Search Tree
来源:互联网 发布:搜索引擎优化实战培训 编辑:程序博客网 时间:2024/06/07 02:11
题目:
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
分析:
建树,肯定是借助递归!!
先使用第一个节点;
先建左子树,然后赋给root的左指针;这里的巧妙之处在于建立左子树的时候顺便把下一个节点(下一个root)加入到列表中;
然后用上一次加入到列表中的节点作为root;而且再次加入新的节点到列表中,调用建树函数建立右子树
参考代码:
http://blog.csdn.net/linhuanmars/article/details/24613781
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *//** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode sortedListToBST(ListNode head) { if(head == null) return null; ListNode cur = head; int count = 0; while(cur!=null) { cur = cur.next; count++; } ArrayList<ListNode> list = new ArrayList<ListNode>(); list.add(head); return helper(list,0,count-1); } private TreeNode helper(ArrayList<ListNode> list, int l, int r) { if(l>r) return null; int m = (l+r)/2; TreeNode left = helper(list,l,m-1); TreeNode root = new TreeNode(list.get(0).val); root.left = left; list.set(0,list.get(0).next); root.right = helper(list,m+1,r); return root; }}
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
- 中兴f402 412等破解超级密码、破解用户限制、关闭远程控制、恢复路由器拨号
- 学习与实践Cadence总结
- Ubuntu 15.04 clang++ 3.6 编译boost 1.59/1.55
- 山峰
- 将矩阵顺时针旋转90度 leetCode:Rotate Image
- Convert Sorted List to Binary Search Tree
- Java中的进制转换,练习
- linux 几个简单shell脚本demo
- UIAlertView提示控件和UIActionSheet的使用
- CodeForces-327A Flipping Game
- ant 中 if else
- 你不知道的JavaScript--Item25 创建对象(类)的8种方法总结
- IOS9自定义UIWindow被键盘盖住(在键盘下面)解决方法
- javaWeb开发之基础--------------MySQL数据库总结