输入:
1
/ \
2 3
/ \ /
4 5 6
输出:
层次遍历:【1,2,3,4,5,6】
前序遍历:【1,2,4,5,3,6】
中序遍历:【4,2,5,1,6,3】
后序遍历:【4,5,2,6,3,1】
层次遍历使用BFS(队列)实现,利用的就是BFS一层一层遍历的特性;
前中后序遍历使用DFS(深度优先遍历)实现。
前序
public void preOrder(TreeNode root){
System.out.println(root);
preOrder(root.left);
preOrder(root.right);
中序
public void inferOrder(TreeNode root){
inferOrder(root.left);
System.out.println(root);
inferOrder(root.right);
后序
public void postOrder(TreeNode root){
postOrder(root.left);
postOrder(root.right);
System.out.println(root);
144. 二叉树的前序遍历
递归
class Solution {
private List<Integer> list = new ArrayList<>();
public List<Integer> preorderTraversal