前序遍歷、中序遍歷、後序遍歷、層次遍歷
阿新 • • 發佈:2019-04-05
eno solution 前序遍歷 二叉樹 二叉 ava 前序 public from
一、概念
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); } } } }
前序遍歷、中序遍歷、後序遍歷、層次遍歷