今天从实验室出来,突然想到这个曾经困扰过我的问题,我这次认为:
如果递归过程中,函数需要利用递归函数的返回值,就无法用栈来改写成非递归函数。
比如二叉树的打印函数,利用递归函数就很简洁的完成了(暂且不讨论效率问题),也可以创建一个栈自己写一个非递归的打印函数。
而又比如求二叉树的高度,虽然可以利用递归解决,却无法利用栈来改写。
欢迎在下面留言!
今天从实验室出来,突然想到这个曾经困扰过我的问题,我这次认为:
如果递归过程中,函数需要利用递归函数的返回值,就无法用栈来改写成非递归函数。
比如二叉树的打印函数,利用递归函数就很简洁的完成了(暂且不讨论效率问题),也可以创建一个栈自己写一个非递归的打印函数。
而又比如求二叉树的高度,虽然可以利用递归解决,却无法利用栈来改写。
欢迎在下面留言!