前言
二叉树的前序遍历是一种特定的遍历方法,按照根节点、左子树、右子树的顺序进行遍历。和中序遍历和后续遍历类似,只是先将遍历到的根节点先做输出。
实现原理
前序遍历的具体过程如下:
前序遍历是一种用于二叉树的遍历方式,其特点是“左子树-树根-右子树”。具体步骤如下:
- 从根节点开始,首先访问根节点。
- 递归地遍历左子树。
- 递归地遍历右子树。
这个过程会一直重复,直到所有节点都被访问。在前序遍历中,节点的访问顺序是先访问根节点,然后是左子树,最后是右子树。这种遍历方式常用于二叉查找树,因为它可以高效地对元素进行排序或查找操作。
具体代码实现
package test6;import java.util.ArrayList;
import java.util.List;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;}}class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res=new ArrayList();inorder(root,res);return res;}public void inorder(TreeNode root,List<Integer> res){if(root==null){return;}res.add(root.val);inorder(root.left,res);inorder(root.right,res);}public void print(List<Integer> res){if(res!=null||res.size()!=0){for(int i=0;i<res.size();i++){System.out.println(res.get(i));}}}public static void main(String[] args) {TreeNode treeNode=new TreeNode(1);treeNode.left=new TreeNode(2);treeNode.left.left=new TreeNode(4);treeNode.left.right=new TreeNode(5);treeNode.right=new TreeNode(3);treeNode.right.left=new TreeNode(6);treeNode.right.right=new TreeNode(7);Solution solution=new Solution();List<Integer> res=solution.inorderTraversal(treeNode);solution.print(res);}
}
QA:待定