二叉树的后序遍历

一、后序遍历 后序遍历逻辑:优先访问左、右子节点,然后访问当前节点。 一个后序遍历的示例,它的后序遍历结果为 [4, 2, 5, 6, 3, 1]: 二、非递归实现 后序遍历的非递归实现比前序和中序的非递归实现要复杂很多,因为每个节点都可能有 2 个子节点,遍历的时候节点中并没有保存当前的状态,无法确定两 ... 阅读更多

二叉树的中序遍历

一、中序遍历 中序遍历过程:先访问左子节点,然后访问当前节点,最后访问右子节点。 以下试一次中序遍历过程: 二、非递归实现 非递归方式遍历依赖栈来实现,因为要先访问子节点,然后访问父节点,因此必须要有一个数据结构来保存已经父节点。 实现原理: 每次遍历到一个节点,不访问它,先压栈,然后对左子树循环做 ... 阅读更多

元宵节~

一晃就到元宵节了,今年的春节似乎还没来得及好好感受,太快了。 即将开始新一年的工作了,充满了挑战,也充满了期待,希望一切顺利! 午餐:

二叉树的先序遍历

一、先序遍历 先序遍历的意思是:先遍历当前节点,再分别遍历左、右子节点。 例如一棵二叉树为: 它的先序遍历序列 (红色虚线标出来的) 为:[1, 2, 4, 3, 5 6] 。 二、递归实现 递归的实现很简单,先访问当前节点,然后分别递归访问左右子节点。 [crayon-6948330c416550249 ... 阅读更多

《剑指 offer 》面试题 8:二叉树的下一个节点

一、题目 给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左右子节点的指针,还有一个指向父节点的指针。 以下面的二叉树为例,它的中序遍历序列是:[2, 4, 1, 5, 3, 6],节点 4 的下一个节点是 1,节点 3 的下一个节点是 5 。 二、分析 画出上面这棵 ... 阅读更多

graphviz 画二叉树对齐的小技巧

一、问题描述 画二叉树的时候,总是无法对齐圆点得到对称的节点。例如:

画出来的效果: 红色标出来的 4 个线条,长度不一样,子节点看起来不对称,就导致整个二叉树看起来也不够美观。 二、解决方案 可以在子节点中加一个中间节点,把线条的 wei ... 阅读更多