在leetcode刷题,很多地方会考察到二叉树的遍历。
深度优先遍历DFS和广度优先遍历BFS看这里【链接】
这篇总结一下前序、中序、后序遍历的实现,备忘。
1.基础知识
二叉树的定义如下:
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
序–指的是根结点被遍历的顺序。
前序遍历: 根结点,左子树,右子树
中序遍历:左子树,根结点,右子树
后序遍历:左子树,右子树,根结点
这里拿百度百科的图片作为示例,这个不是二叉树。