昨天看到一个帖子,询问二叉树遍历问题,还不错!贴来:
题目:
遍历n个节点的二叉树 (每个节点有parent, left, right 信息 ) 要求:
1)不可以修改二叉树,即便是临时的。
2)时间 O(n)
3) 除了二叉树本身,只使用常数个空间。( 常数不依赖n )
My Answer:
首先这个题目,肯定不能递归,或者用队列什么的,否则空间不满足要求,
因为有pare信息,所以,在遍历时,只要记录访问当前节点时,上一次访问的地方,就可以了:
简单给个代码,简单样例通过,但没有充分测试:
/
本文探讨了如何在O(n)时间内遍历n个节点的二叉树,并且只使用常数个额外空间的问题。提供了一种不依赖递归和队列的遍历方法,适用于中序遍历场景。
4037

被折叠的 条评论
为什么被折叠?



