本文主要是介绍代码随想录day17(1)二叉树:二叉树的前序遍历(leetcode144),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目要求:实现二叉树的前序遍历。
思路:对于二叉树的前序遍历,通常可以使用递归算法与非递归(迭代)算法两种。
对于递归算法,我们首先应该确定递归函数的参数以及返回值,其次应该确定终止条件,最后再确定单层递归的逻辑。二叉树的参数一般包括根节点以及结果数组,终止条件应为此时结点为空结点,应该返回到上一层。单层逻辑应该为先访问此节点,然后递归访问其左、右孩子结点。
对于非递归算法,我们应该使用栈来代替递归的过程。对于前序遍历,我们每次先处理中间结点,应该先将根节点放入栈中,为了接下来先处理左孩子,所以应该先将右孩子加入栈,再加入左孩子。
leetcode实战:
代码实现:
递归算法:
非递归算法:
这篇关于代码随想录day17(1)二叉树:二叉树的前序遍历(leetcode144)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!