前序遍历中序遍历后序遍历层次遍历
Posted wylwyl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前序遍历中序遍历后序遍历层次遍历相关的知识,希望对你有一定的参考价值。
一、概念
1、前序遍历:
- 先根节点
- 左节点
- 右节点
2、中序遍历:
- 左节点
- 根节点
- 右节点
3、后序遍历
- 左节点
- 右节点
- 根节点
4、层次遍历
从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印
二、代码
2.1 首先定义TreeNode
public class TreeNode { public int value; public TreeNode left; public TreeNode right; }
2.2 代码
import java.util.*; public class Solution { public static preOrderTravel(TreeNode root) { if(root == null) { return; } System.out.println(root.val); if(root.left != null) { preOrderTravel(root.left); } if(root.right != null) { preOrderTravel(root.right); } } public static void inOrderTravel(TreeNode root) { if(root == null) { return; } if(root.left != null) { inOrderTravel(root.left); } System.out.println(root.val); if(root.right != null) { inOrderTravel(root.right); } } public static void postOrderTravel(TreeNode root) { if(root == null) { return; } if(root.left != null) { postOrderTravel(root.left); } if(root.right != null) { postOrderTravel(root.right); } System.out.println(root.val); } public static void fromTopToBottom(TreeNode root) { if(root == null) { return; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); while(queue.isEmpty()) { // 移除并返问队列头部的元素 如果队列为空,则返回null TreeNode node = queue.poll(); System.out.println(node.val); if(node.left != null) { queue.add(node.left); } if(node.right != null) { queue.add(node.right); } } } }
以上是关于前序遍历中序遍历后序遍历层次遍历的主要内容,如果未能解决你的问题,请参考以下文章
树二叉树遍历算法(深度优先广度优先遍历,前序中序后序层次)及Java实现