题目要求:实现二叉树的中序遍历。
思路:对于二叉树的中序遍历,通常可以使用递归算法与非递归(迭代)算法两种。
对于递归算法的处理与前序、后序基本相同,只是本次应先访问其左节点,然后进行push操作,再访问右节点。
对于非递归算法则不同,中序遍历时访问顺序与要处理的顺序不同,此时就应借用指针的遍历来帮助访问结点,用栈来处理结点上的元素。
leetcode实战:
代码实现:
递归算法:
非递归算法:
题目要求:实现二叉树的中序遍历。
思路:对于二叉树的中序遍历,通常可以使用递归算法与非递归(迭代)算法两种。
对于递归算法的处理与前序、后序基本相同,只是本次应先访问其左节点,然后进行push操作,再访问右节点。
对于非递归算法则不同,中序遍历时访问顺序与要处理的顺序不同,此时就应借用指针的遍历来帮助访问结点,用栈来处理结点上的元素。
leetcode实战:
代码实现:
递归算法:
非递归算法: