leetcode109. 有序链表转换二叉搜索树(递归)
生活随笔
收集整理的這篇文章主要介紹了
leetcode109. 有序链表转换二叉搜索树(递归)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個單鏈表,其中的元素按升序排序,將其轉換為高度平衡的二叉搜索樹。本題中,一個高度平衡二叉樹是指一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例:給定的有序鏈表: [-10, -3, 0, 5, 9],一個可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面這個高度平衡二叉搜索樹:0/ \-3 9/ /-10 5
class Solution {public TreeNode sortedListToBST(ListNode head) {ArrayList<Integer> list=new ArrayList<>();while (head!=null){list.add(head.val);head=head.next;}return toBST(list,0,list.size()-1);}public TreeNode toBST(ArrayList<Integer> list,int l,int r) {if(l>r) return null;int mid=(r-l)/2+l;TreeNode temp=new TreeNode(list.get(mid));temp.left=toBST( list, l, mid-1);temp.right=toBST(list, mid+1, r);return temp;}
}
總結
以上是生活随笔為你收集整理的leetcode109. 有序链表转换二叉搜索树(递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到卖金子是什么意思啊
- 下一篇: 梦到草莓长在树上什么意思