拿下技术面上传简历

给你一棵二叉树的节点值序列(节点值有重复):前序遍历 pr = [3, 9, 3, 1, 20, 15, 7],中序遍历 in = [3, 9, 1, 3, 15, 20, 7]。请问:只用这两组序列,能否唯一确定这棵树?说明你的判断过程,并给出一个能构造出来的具体反例;如果要让代码支持这种情况,你会怎么改。

数据结构与算法线性与树结构1-3 年知识点 1 个

面试官在考什么

判断候选人是否理解「前序 + 中序重建」依赖的前提(根在中序中位置唯一),以及能否构造并验证反例。

二叉树遍历

回答框架 · 前两步

  1. 结论:不能唯一确定。根值 3 在中序序列中出现两次(下标 0 和下标 3),无法判断哪个 3 是根,划分左右子树时产生歧义。
  2. 具体反例:树 A 以 3 为整棵树根、左子树为空,9 为右孩子且只有右孩子 3,3 的左为 1、右为 20,20 的左为 15、右为 7;树 B 以 3 为根,左子树是 9(左 3、右 1),右子树是 20(左 15、右 7)。两棵树的 pr 和 in 都与题目完全一致。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题