二叉树遍历
前序遍历
static List<Integer> list = new ArrayList<>();
//前序遍历
public static List<Integer> preorderTraversal(TreeNode root) {
if(root == null)
{
return null;
}
list.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return list;
}
中序遍历
static List<Integer> list = new ArrayList<>();
//中序遍历
public static List<Integer> midorderTraversal(TreeNode root) {
if(root == null)
{
return null;
}
midorderTraversal(root.left);
list.add(root.val);
midorderTraversal(root.right);
return list;
}
后序遍历
public static List<Integer> BhorderTraversal(TreeNode root) {
if(root == null)
{
return null;
}
BhorderTraversal(root.left);
BhorderTraversal(root.right);
list.add(root.val);
return list;
}
其实这三个遍历差不多,只是 list 的添加元素的代码位置不一样
所谓的前序,中序,后序就是中间节点的位置
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于