package com.mfq.tree;
import java.util.ArrayList;
import java.util.List;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
/**
* @author mufanqiang
* @date 2019-9-8 11:12:59
* @description
*/
public class Solution {
List<Integer> list;
public static void main(String[] args) {
TreeNode treeNode = new TreeNode(1);
TreeNode treeNode1 = new TreeNode(2);
TreeNode treeNode2 = new TreeNode(3);
treeNode.right = treeNode1;
treeNode1.left = treeNode2;
//前序
System.out.println(new Solution().preorderTraversal(treeNode));
//中序
System.out.println(new Solution().inorderTraversal(treeNode));
//后序
System.out.println(new Solution().postorderTraversal(treeNode));
}
/**
* 前序递归实现
*
* @param root
* @return
*/
public List<Integer> preorderTraversal(TreeNode root) {
if (list == null) {
list = new ArrayList<>();
}
if (root == null) {
return list;
}
if (root != null) {
list.add(root.val);
}
if (root.left != null) {
preorderTraversal(root.left);
}
if (root.right != null) {
preorderTraversal(root.right);
}
return list;
}
/**
* 中序递归实现
*
* @param root
* @return
*/
public List<Integer> inorderTraversal(TreeNode root) {
if (list == null) {
list = new ArrayList<>();
}
if (root == null) {
return list;
}
if (root.left != null) {
inorderTraversal(root.left);
}
if (root != null) {
list.add(root.val);
}
if (root.right != null) {
inorderTraversal(root.right);
}
return list;
}
/**
* 后序递归实现
*
* @param root
* @return
*/
public List<Integer> postorderTraversal(TreeNode root) {
if (list == null) {
list = new ArrayList<>();
}
if (root == null) {
return list;
}
if (root.left != null) {
postorderTraversal(root.left);
}
if (root.right != null) {
postorderTraversal(root.right);
}
if (root != null) {
list.add(root.val);
}
return list;
}
}
二叉树的前中后序遍历(递归实现)
最新推荐文章于 2022-06-15 23:14:41 发布