二叉树的 递归序
1.在任何递归子树中,左节点一定在右节点之前遍历。
2.前序,中序,后序,左节点一定在右节点之前遍历
1 2 4 4 4 2 5 5 5 2 1 3 6 6 6 3 7 7 7 3 1 递归序
4>2>5>1>6>3>7 (中序遍历 左根右)
递归实现
private void in_order(TreeNode root) {
if (root == null) {
return;
}
in_order(root.left);
System.out.print(root.val + ">");
in_order(root.right);
}
非递归实现
- peek()函数返回栈顶的元素,但不弹出该栈顶元素;
- pop()函数返回栈顶的元素,并且将该栈顶元素出栈
- add是继承自Vector的方法,且返回值类型是boolean;
- push是Stack自身的方法,返回值类型是参数类类型;
private void in_order(TreeNode h) {
Stack<TreeNode> stack = new Stack<>();
while (!stack.isEmpty() || h != null) {
if (h != null) {
stack.push(h);
h = h.left;
} else {
h = stack.pop();
System.out.println(h.val);
h = h.right;
}
}
}