当前位置:  开发笔记 > 人工智能 > 正文

如何在没有额外内存的情况下在O(n)时间内遍历二叉树

如何解决《如何在没有额外内存的情况下在O(n)时间内遍历二叉树》经验,为你挑选了1个好方法。

给定一个带有整数,左右指针的二叉树,如何在O(n)时间和O(1)额外内存(没有堆栈/队列/递归)中遍历树?

这个人给出了一个解决方案,该解决方案不是将当前路径编码为整数的O(n)总时间(因此适用于有限深度的树).

我正在寻找经典的解决方案

(SPOILER)

编码子节点中每个节点的父节点.



1> Anton Tykhyy..:

任何好的算法书都会有这个算法,例如在Knuth(TAOCP I.2.3.1 Traversing binary trees,excercise 21)中.但是,因为此算法会修改树,所以在多线程环境中必须格外小心.

您也可以使用线程树(参见Knuth).

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有