二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。
如下便是一棵二叉树:

二叉树的前序遍历:
1. 遍历根节点
2. 如果存在左子树,先序遍历左子树
3. 如果存在右子树,先序遍历右子树
二叉树结构定义:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
实现方法1:递归
public void preOrder(TreeNode root) {
// 递归结束的条件
if(root==null) return;
// 将当前节点的值加入列表
nodesVal.add(root.val);
// 如果存在左孩子,遍历左孩子
if(root.left!=null) {
preOrder(root.left);
}
// 如果存在右孩子,遍历右孩子
if(root.right!=null) {

本文详细介绍了二叉树的前序遍历概念,包括递归和非递归两种实现方式。在递归方法中,首先访问根节点,然后遍历左子树,最后遍历右子树。非递归方法利用栈的后进先出特性,从根节点开始,不断向左下遍历,直到无左子树时回溯并遍历右子树。这两种方法都有效地解决了二叉树的前序遍历问题。
最低0.47元/天 解锁文章
1865

被折叠的 条评论
为什么被折叠?



