当前位置:网站首页>Likou - preorder traversal, inorder traversal, postorder traversal of binary tree
Likou - preorder traversal, inorder traversal, postorder traversal of binary tree
2022-08-05 02:43:00 【qq_52025208】
一、题目描述:给你二叉树的根节点 root ,返回它节点值的 前序 遍历.
1.递归:
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> preorderTraversal(TreeNode root) {
if(root == null) return list;
list.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return list;
}
}
2.非递归
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list=new ArrayList<>();
if(root==null) return list;
Stack<TreeNode> stack=new Stack<>();
stack.push(root);
while(!stack.isEmpty()){
TreeNode node= stack.pop();
list.add(node.val);
if(node.right!=null){
stack.push(node.right);
}
if(node.left!=null){
stack.push(node.left);
}
}
return list;
}
}
二、中序遍历
递归:
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root == null) return list;
inorderTraversal(root.left);
list.add(root.val);
inorderTraversal(root.right);
return list;
}
}
非递归:
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
if(root == null) return list;
Stack<TreeNode> stack = new Stack<>();
while(root != null || !stack.empty()) {
while(root!= null) {
stack.push(root);
root = root.left;
}
root = stack.pop();
list.add(root.val);
root = root.right;
}
return list;
}
}
三、后序遍历
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> postorderTraversal(TreeNode root) {
if(root == null) return list;
postorderTraversal(root.left);
postorderTraversal(root.right);
list.add(root.val);
return list;
}
}
边栏推荐
- 【解密】OpenSea免费创造的NFT都没上链竟能出现在我的钱包里?
- Advanced Numbers_Review_Chapter 1: Functions, Limits, Continuity
- Go 微服务开发框架 DMicro 的设计思路
- 解决connect: The requested address is not valid in its context
- 常见的硬件延迟
- 1667. Fix names in tables
- ARM Mailbox
- matlab绘制用颜色表示模值大小的箭头图
- C语言日记 9 if的3种语句
- Images using redis cache Linux master-slave synchronization server hard drive full of moved to the new directory which points to be modified
猜你喜欢
随机推荐
Common hardware delays
Snapback - same tree
Data storage practice based on left-order traversal
Quickly learn chess from zero to one
UOS系统下ksql应用缺少动态库”libtinfo.so.5“问题
QT语言文件制作
Chinese characters to Pinyin
Optimizing the feed flow encountered obstacles, who helped Baidu break the "memory wall"?
Regular expression to match a certain string in the middle
js中try...catch和finally的用法
22-07-31周总结
C language diary 9 3 kinds of statements of if
力扣-相同的树
DAY22: sqli-labs shooting range clearance wp (Less01~~Less20)
回顾51单片机
编译预处理等细节
正则表达式,匹配中间的某一段字符串
行业案例|世界 500 强险企如何建设指标驱动的经营分析系统
627. Change of gender
QT:神奇QVarient









