首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解递归边界条件?

如何理解递归边界条件?
EN

Stack Overflow用户
提问于 2017-03-21 04:48:48
回答 1查看 473关注 0票数 0

最近,我遇到了一个问题“从给定的顺序和顺序遍历构造树”.And,我已经查找了源代码(通过java)。从给定的无序和前置遍历构造树

但是有一点我在代码中非常困惑,那就是“如果(inStrt> inEnd)返回NULL”,我想知道作者是如何考虑这个不明显的边界条件的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 04:05:01

buildTree()的每个递归调用中,由in[]表示的无序序列有效地分为两个子序列,一个子序列表示属于父节点左侧的节点,另一个子序列表示属于父节点右侧的节点。(最初的序列并不是物理划分的,而是将索引传递到buildTree()以反映子序列。)

如在链接页面顶部的示例所示,in = [D, B, E, A, F, C],以及A是根、in_left = [D, B, E]in_right = [F, C]。因此,inStrinEnd指数传递到buildTree()中以反映这些亚序列,即(0, 2)(4, 5)

那么,当inStr > inEnd时,这意味着什么?简单地说,已经没有子节点了,所以我们可以停下来。

“递归边界条件”与快速排序的边界条件非常相似,后者比较了低指数和高指数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42918659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档