递归

  1. private static TreeNode sortedArrayToBST(int[] nums, int left, int right) {
  2. if (left > right) {
  3. return null;
  4. }
  5. // always choose left middle node as a root
  6. int p = (left + right) / 2;
  7. // inorder traversal: left -> node -> right
  8. TreeNode root = new TreeNode(nums[p]);
  9. root.left = sortedArrayToBST(nums, left, p - 1);
  10. root.right = sortedArrayToBST(nums, p + 1, right);
  11. return root;
  12. }


如果是链表转树就先转成列表