You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解sortedArrayToBST递归函数输出顺序与预期不符的原因

逻辑说明

你的代码实现的是升序数组转高度平衡二叉搜索树的功能,我们直接代入输入nums = [1,2,3]拆解执行流程:

  • 初始调用constructBST(0, 2),计算区间中点mid = (0+2)//2 = 1,取nums[1] = 2作为整棵树的根节点
  • 递归构造左子树:调用constructBST(0, 0),中点为0,取nums[0] = 1作为左子树根,其左右子区间均不合法(l>r),返回空,因此1是叶子节点
  • 递归构造右子树:调用constructBST(2, 2),中点为2,取nums[2] = 3作为右子树根,同样左右子树为空,是叶子节点

最终生成的树结构为:

2
   / \
  1   3

你看到的输出[2,1,3]是算法题平台通用的二叉树序列化格式,采用层序遍历规则:从上到下逐层遍历,同一层从左到右输出节点值,和上面的树结构完全匹配。
你预期的[1,3,2]实际是这棵树的后序遍历结果,后序遍历规则为「左子树→右子树→根节点」,刚好对应这个输出顺序,属于对遍历规则的误解导致的预期偏差。

内容的提问来源于stack exchange,提问作者bbluo22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:57:04