问题描述
- 递归遍历二叉树,怎样保存结点数值到数组里
-
求讲解 递归遍历二叉树的时候,怎样能 在访问每个结点时,将结点的数值存到数组里。最后得到一个结点数值的数组。教材上遍历的时候都是直接输出,没有存到数组里,但是我在编程时遇到了要存到数组里的问题。求大神~~~追问:
追问一下,我晚上试了一下,感觉使用数组作为参数看起来可以,但是在递归的时候每次递归数组的角标i都会被重新定义。貌似全局变量或者静态局部变量在递归时都会被重新定义。这怎么处理啊 好心塞
解决方案
将数组作为一个遍历函数的一个参数,遍历到一个节点,就将该节点数值保存到数组中,由于数组的传递是地址传递,所以函数中的改变会反应到外部,所以遍历结束,数组中就是遍历的数据
解决方案二:
关键的问题在于,你没有办法事先知道需要多大的数组。所以有两个办法,一个是估算一个数组的大小,如果超过,就再开一个更大的数组,把现有的数据拷贝进去。
另一个办法是先开一个向量或者链表存数据,最后再转换为数组。
解决方案三:
两种方法,1.开一个全局数组,2.数组的指针当参数传递
时间: 2024-08-07 03:34:04