1 二叉树
二叉树是树的一种特殊结构,再二叉树中每个节点最多只能有两个子节点。
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
2 遍历
2.1 递归 前序遍历
//递归 前序遍历
public static void frontRecursive(TreeNode root) {
if(root==null) {
//中止条件
return;
}else {
//前序 根-》左-》右
System.out.println(root.val);
frontRecursive(root.left);
frontRecursive(root.right);
}
}
2.2 循环 前序遍历
循环遍历需要用到栈来保存节点信息。
//循环、栈 前序遍历
public static void frontLoop(TreeNode root) {
Stack<TreeNode> stack = new Stack<TreeNode>();
while(root != null || !stack.isEmpty()) {
while(root != null) {
//这个循环会走到左子树的底部
//先输出根
System