本文共 787 字,大约阅读时间需要 2 分钟。
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
解题思路:
将节点转化为数组,然后递归求解public class Solution { public TreeNode sortedListToBST(ListNode head) { if(head == null) return null; ArrayList nums = new ArrayList(); while(head != null){ nums.add(head.val); head = head.next; } return sortArrayToBST(nums,0,nums.size()); } public TreeNode sortArrayToBST(List nums,int start,int end){ if(end < start) return null; int mid = (start+end)/2; TreeNode root = new TreeNode((int)nums.get(mid)); root.left = sortArrayToBST(nums,start,mid-1); root.right = sortArrayToBST(nums,mid+1,end); return root; }}
转载地址:http://etivi.baihongyu.com/