本文借鉴力扣题解,
借鉴文章地址
遍历树有两种策略:
- 深度优先搜索(DFS)
深度优先搜索策略又可以根据根节点、左孩子和右孩子的相对顺序被细分为前序遍历,中序遍历和后序遍历。 - 宽度优先搜索(BFS)
我们按照高度顺序一层一层的访问整棵树,高层次的节点将会比低层次的节点先被访问到。
本文以递归和栈两种方式实现前序遍历,中序遍历和后序遍历
输入的数据是3层的满二叉树。照着代码撸一遍就掌握的差不多了。
要点:
- 前序遍历:根–》左–》右
- 中序遍历:左–》根–》右
- 后序遍历:左–》右–》根
package 该死的数据结构;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
// 先声明二叉树 TreeNode 节点
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x){
val=x; }
}
public class ercha {
public static void main(String[] args) {
TreeNode treeNode = new TreeNode(1);
treeNode.left=new TreeNode(2);
treeNode.right=new TreeNode(3);
treeNode.left.left=new TreeNode(4);
treeNode.left.right=new TreeNode(5);
treeNode.right.left=new TreeNode(6);
treeNode.right.right=new TreeNode(7);
System.out.println(new Solution().