【IT笔试面试题整理】有序数组生成最小高度二叉树
生活随笔
收集整理的這篇文章主要介紹了
【IT笔试面试题整理】有序数组生成最小高度二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【試題描述】定義一個函數,輸入一個有序數組生成最小高度二叉樹
We will try to create a binary tree such that for each node, the number of nodes in the left
subtree and the right subtree are equal, if possible
Algorithm:
1?? Insert into the tree the middle element of the array
2?? Insert (into the left subtree) the left subarray elements
3?? Insert (into the right subtree) the right subarray elements
4?? Recurse
【參考代碼】
1 public static Node addToTree(int[] arr,int start,int end) 2 { 3 if(end < start) 4 return null; 5 int mid = (start + end)/2; 6 Node n = new Node(arr[mid]); 7 n.left = addToTree(arr,start,mid-1); 8 n.right = addToTree(arr,mid+1,end); 9 return n; 10 } 11 public static Node createMinBST(int[] array) 12 { 13 return addToTree(array,0,array.length - 1); 14 }?
總結
以上是生活随笔為你收集整理的【IT笔试面试题整理】有序数组生成最小高度二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vivo X90全新配色“告白”正式发布
- 下一篇: 【IT笔试面试题整理】给定二叉树,给每层