0
点赞
收藏
分享

微信扫一扫

【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历

金牛豆豆 2022-05-27 阅读 48

描述

给定一棵二叉树,分别按照二叉树先序,中序和后序打印所有的节点。   数据范围:【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历_数组

要求:空间复杂度 【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历_先序_02

样例解释:

【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历_先序_03

答案:Lambda的简化-方法引用,list转int数组

import java.util.*;
public class Solution {
/**
*
* @param root TreeNode类 the root of binary tree
* @return int整型二维数组
*/

public int[][] threeOrders (TreeNode root) {
List preList = new ArrayList<>();
List inList = new ArrayList<>();
List postList = new ArrayList<>();
preOrder(root, preList);
inOrder(root, inList);
postOrder(root, postList);
int[][] res = new int[3][preList.size()];
//转为int数组,需要用mapToInt
res[0] = preList.stream().mapToInt(Integer::valueOf).toArray();
res[1] = inList.stream().mapToInt(Integer::valueOf).toArray();
res[2] = postList.stream().mapToInt(Integer::valueOf).toArray();
return res;
}

public void preOrder(TreeNode root, List preList) {
if(root == null) return;
preList.add(root.val);
preOrder(root.left, preList);
preOrder(root.right, preList);
}

public void inOrder(TreeNode root, List inList) {
if(root == null) return;
inOrder(root.left, inList);
inList.add(root.val);
inOrder(root.right, inList);
}

public void postOrder(TreeNode root, List postList) {
if(root == null) return;
postOrder(root.left, postList);
postOrder(root.right, postList);
postList.add(root.val);
}
}

 


本文来自博客园,作者:​​哥们要飞​​​,转载请注明原文链接:​​javascript:void(0)p/15806159.html​​


举报

相关推荐

二叉树的先序 中序 后序遍历

0 条评论