二叉树的深度优先遍历
来源:互联网 发布:java游戏地下城与勇士 编辑:程序博客网 时间:2024/06/16 08:29
二叉树的前序遍历——根 左 右
import java.util.ArrayList;class TreeNode { public int val; public TreeNode left, right; public TreeNode(int val) { this.val = val; this.left = this.right = null; }}/** * 二叉树的前序遍历——根 左 右 * */public class Solution { public ArrayList<Integer> preorderTraversal(TreeNode root) { ArrayList<Integer> results = new ArrayList<>(); if(root == null) return results; // 添加根节点 results.add(root.val); // 遍历左子树 results = preorderTraversalHelper(root.left, results); // 遍历右子树 results = preorderTraversalHelper(root.right, results); return results; } private ArrayList<Integer> preorderTraversalHelper(TreeNode root, ArrayList<Integer> results) { if(root == null) return results; // 添加根节点 results.add(root.val); // 遍历左子树 results = preorderTraversalHelper(root.left, results); // 遍历右子树 results = preorderTraversalHelper(root.right, results); return results; }}
二叉树的中序遍历——左 根 右
import java.util.ArrayList;class TreeNode { public int val; public TreeNode left, right; public TreeNode(int val) { this.val = val; this.left = this.right = null; }}/** * 二叉树的中序遍历——左 根 右 * */public class Solution { public ArrayList<Integer> inorderTraversal(TreeNode root) { ArrayList<Integer> results = new ArrayList<>(); if(root == null) return results; // 遍历左子树 results = inorderTraversalHelper(root.left, results); // 添加根节点 results.add(root.val); // 遍历右子树 results = inorderTraversalHelper(root.right, results); return results; } private ArrayList<Integer> inorderTraversalHelper(TreeNode root, ArrayList<Integer> results) { if(root == null) return results; // 遍历左子树 results = inorderTraversalHelper(root.left, results); // 添加根节点 results.add(root.val); // 遍历右子树 results = inorderTraversalHelper(root.right, results); return results; }}
二叉树的后序遍历——左 右 根
import java.util.ArrayList;class TreeNode { public int val; public TreeNode left, right; public TreeNode(int val) { this.val = val; this.left = this.right = null; }}/** * 二叉树的后序遍历——左 右 根 * */public class Solution { public ArrayList<Integer> postorderTraversal(TreeNode root) { ArrayList<Integer> results = new ArrayList<>(); if(root == null) return results; // 遍历左子树 results = postorderTraversalHelper(root.left, results); // 遍历右子树 results = postorderTraversalHelper(root.right, results); // 添加根节点 results.add(root.val); return results; } private ArrayList<Integer> postorderTraversalHelper(TreeNode root, ArrayList<Integer> results) { if(root == null) return results; // 遍历左子树 results = postorderTraversalHelper(root.left, results); // 遍历右子树 results = postorderTraversalHelper(root.right, results); // 添加根节点 results.add(root.val); return results; }}
阅读全文
1 0
- 二叉树的深度优先遍历和深度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历与广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的广度优先遍历和深度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历以及广度优先遍历
- 二叉树的深度优先遍历与广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历与广度优先遍历
- 文章标题
- POI导出Excel及单元格的设置
- 词向量与word2vec分析
- 对现代病理的应用
- 浅谈斐波那契数列——从递推到矩阵乘法
- 二叉树的深度优先遍历
- Triplet Loss及其梯度
- 基础数论算法(7) 欧拉函数与BSGS算法
- hdu-4990 Reading comprehension
- vscode使用Better Align插件以及快捷键配置实例
- 文本三剑客---gawk基础
- Django 基础教程 视图与网址
- 探究java多线程中正确的单例模式 volatile关键字
- 51单片机常用库函数