演算法 -- 實現二叉樹先序,中序和後序遍歷
題目描述
分別按照二叉樹先序,中序和後序列印所有的節點。
示例1
輸入
{1,2,3}
返回值
[[1,2,3],[2,1,3],[2,3,1]]
解
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode類 the root of binary tree
* @return int整型二維陣列
*/
public int[][] threeOrders (TreeNode root) {
List<Integer> fo = new ArrayList<>();
List<Integer> mo = new ArrayList<>();
List<Integer> bo = new ArrayList<>();
firstorder(fo, root);
midorder(mo, root);
backorder(bo, root);
int[][] res = new int[3][fo.size()];
for(int i = 0; i < fo.size(); i++){
res[0][i] = fo.get(i);
res[1][i] = mo.get(i);
res[2][i] = bo.get(i);
}
return res;
}
public void firstorder(List<Integer> list, TreeNode node){
if(node == null) {return;}
list.add(node.val);
firstorder(list, node.left);
firstorder(list, node.right);
}
public void midorder(List<Integer> list, TreeNode node){
if(node == null) {return;}
midorder(list, node.left);
list.add(node.val);
midorder(list, node.right);
}
public void backorder(List<Integer> list, TreeNode node){
if(node == null) {return;}
backorder(list, node.left);
backorder(list, node.right);
list.add(node.val);
}
}
https://www.nowcoder.com/questionTerminal/a9fec6c46a684ad5a3abd4e365a9d362
相關文章
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 非遞迴實現先序遍歷和中序遍歷遞迴
- PHP基於非遞迴演算法實現先序、中序及後序遍歷二叉樹操作示例PHP遞迴演算法二叉樹
- 【演算法】二叉樹、N叉樹先序、中序、後序、BFS、DFS遍歷的遞迴和迭代實現記錄(Java版)演算法二叉樹遞迴Java
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- 二叉樹--後序遍歷二叉樹
- 二叉樹迭代器(中序遞迴、前序和後序遍歷)演算法二叉樹遞迴演算法
- 還原二叉樹(先序+中序-〉後序)二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- 7-1 根據後序和中序遍歷輸出先序遍歷 (25 分)
- 從中序與後序遍歷序列構造二叉樹二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 先序、中序、後序序列的二叉樹構造演算法二叉樹演算法
- 二叉樹的前中後序遍歷二叉樹
- 106. 從中序與後序遍歷序列構造二叉樹——Java實現二叉樹Java
- 388,先序遍歷構造二叉樹二叉樹
- 非遞迴先序遍歷二叉樹遞迴二叉樹
- 已知二叉樹的先序和後序求任意一中序二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 【樹01】對二叉樹前序/中序/後序遍歷演算法的一些思考二叉樹演算法
- L2_006樹的遍歷(後序+中序->前序/層序)
- The order of a Tree (二叉搜尋樹+先序遍歷)
- 【資料結構與演算法】二叉樹的 Morris 遍歷(前序、中序、後序)資料結構演算法二叉樹
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- 二叉樹的後序遍歷post order演算法二叉樹演算法
- LeetCode-106-從中序與後序遍歷序列構造二叉樹LeetCode二叉樹
- 刷題筆記:樹的前序、中序、後序遍歷筆記
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 二叉樹的層序遍歷二叉樹
- 二叉搜尋樹的後序遍歷序列
- 二叉樹的前序、中序、後序的遞迴和迭代實現二叉樹遞迴
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- Java中用遞迴和迭代實現二叉樹的中序( InOrder )遍歷Java遞迴二叉樹
- 中序線索二叉樹的構造和遍歷二叉樹