//二叉树的递归遍历
public class one {
}
//前序遍历
class Solution{
ArrayList<Integer> preOrderReverse(TreeNode root){
ArrayList<Integer> result = new ArrayList<Integer>();
preOrder(root, result);
return result;
}
private void preOrder(TreeNode root, ArrayList<Integer> result) {
if(root == null) {
return;
}
result.add(root.val);
preOrder(root.left, result);
preOrder(root.right, result);
}
public 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 Solution1{
public List<Integer> inorderTraversal(TreeNode root){
List<Integer> res = new ArrayList<>();
inorder(root, res);
return res;
}
private void inorder(TreeNode root, List<Integer> res) {
if(root == null) {
return;
}
inorder(root.left, res);
res.add(root.val);
inorder(root.right, res);
}
public 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 Solution2{
public List<Integer> postorderTraversal(TreeNode root){
List<Integer> res = new ArrayList<>();
postorder(root, res);
return res;
}
private void postorder(TreeNode root, List<Integer> res) {
if(root == null) {
return;
}
postorder(root.left, res);
postorder(root.right, res);
res.add(root.val);
}
public 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;
}
}
}
6.1 二叉树的递归遍历(前序、中序、后序)——【LeetCode】
最新推荐文章于 2024-05-20 17:13:48 发布