Binary Tree的前、中、后序遍历(recursion)
来源:互联网 发布:java服务端开发是什么 编辑:程序博客网 时间:2024/06/14 07:41
都是使用recursion的方式进行计算处理。
以后更新非递归版本 == > 自己模拟stack数据结构处理。
前序遍历:
Given a binary tree, return the preorder traversal of its nodes’ values.
Have you met this question in a real interview? Yes
Example
Given:
1
/ \
2 3
/ \
4 5
return [1,2,4,5,3].
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: The root of binary tree. * @return: Preorder in ArrayList which contains node values. */ public ArrayList<Integer> preorderTraversal(TreeNode root) { // write your code here ArrayList<Integer> array = new ArrayList<>(); if (root == null) { return array; } ArrayList<Integer> left = preorderTraversal(root.left); ArrayList<Integer> right = preorderTraversal(root.right); array.add(root.val); array.addAll(left); array.addAll(right); return array; }}
中序遍历Given a binary tree, return the inorder traversal of its nodes’ values.
Have you met this question in a real interview? Yes
Example
Given binary tree {1,#,2,3},
1
\
2
/
3
return [1,3,2].
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: The root of binary tree. * @return: Inorder in ArrayList which contains node values. */ public ArrayList<Integer> inorderTraversal(TreeNode root) { // write your code here ArrayList<Integer> result = new ArrayList<>(); if (root == null) { return result; } ArrayList<Integer> right = inorderTraversal(root.right); ArrayList<Integer> left = inorderTraversal(root.left); result.addAll(left); result.add(root.val); result.addAll(right); return result; }}
后序遍历Given a binary tree, return the postorder traversal of its nodes’ values.
Have you met this question in a real interview? Yes
Example
Given binary tree {1,#,2,3},
1
\
2
/
3
return [3,2,1].
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: The root of binary tree. * @return: Postorder in ArrayList which contains node values. */ public ArrayList<Integer> postorderTraversal(TreeNode root) { // write your code here ArrayList<Integer> result = new ArrayList<>(); if (root == null) { return result; } ArrayList<Integer> left = postorderTraversal(root.left); ArrayList<Integer> right = postorderTraversal(root.right); result.addAll(left); result.addAll(right); result.add(root.val); return result; }}
0 0
- Binary Tree的前、中、后序遍历(recursion)
- LeetCode 94. Binary Tree Inorder Traversal 树的前序、中序,后序遍历的非递归实现
- 二叉树前/中/后序遍历非递归实现(用栈实现)LeetCode Binary Tree Traversal
- HOJ 11109 Traversal of binary tree(前、中序遍历求后序遍历)
- Binary Tree Preorder Traversal 二叉树的前序遍历
- Binary Tree Preorder Traversal 链表的前序遍历
- binary-tree-preorder-traversal(二叉树的前序遍历)
- leetcode7.binary tree前序遍历
- Binary Tree——给定二叉树的前序遍历和中序遍历重建二叉树
- 树的前序遍历,中序遍历,后序遍历,层次(广度)遍历
- 二叉树的遍历(前序遍历、中序遍历、后序遍历)
- LeetCode OJ 之 Binary Tree Preorder Traversal (二叉树的前序遍历)
- LintCode Binary Tree Preorder Traversal二叉树的前序遍历(非递归)
- 66.Binary Tree Preorder Traversal-二叉树的前序遍历(容易题)
- 【LeetCode】Binary Tree Preorder Traversal 二叉树的前序遍历(3种方法)- Easy+
- 树的前,中,后 序遍历
- Binary Tree Postorder Traversal-二叉树的后序遍历
- Binary Tree Postorder Traversal 二叉树的后序遍历
- 读书笔记7 《深阅读》 斋藤孝
- MySql接口API函数综述
- Mysql 数据库小记
- 引号的内容会被当成字符串
- struts2总是提示StringUtils错误
- Binary Tree的前、中、后序遍历(recursion)
- 创建简单SpringMVC项目
- 结构型模式-组合(composite)
- 冒泡排序、快速排序、选择排序
- java并发之AbstractQueuedSynchronizer
- Candy [leetcode]
- Centos7下安装MySQL5.7
- 12.PHP_PDO数据库抽象层
- 浅谈架构模式-mvc,mvp