Leetcode:探索二叉树(递归方式,Leetcode144,94,145)
Posted 小可爱的大笨蛋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode:探索二叉树(递归方式,Leetcode144,94,145)相关的知识,希望对你有一定的参考价值。
本章目标:
- 理解和区分树的遍历方法
- 能够运用递归方法解决树的为前序遍历、中序遍历和后序遍历问题
- 能用运用迭代方法解决树的为前序遍历、中序遍历和后序遍历问题
- 能用运用广度优先搜索解决树的层序遍历问题
1. 二叉树的遍历方法
(1). 前序遍历:先打印根节点,再打印左儿子,最后打印右儿子。
(2). 中序遍历:先打印左儿子,再打印根节点,最后打印右儿子。
(3). 后序遍历:先打印左儿子,再打印右儿子,最后打印根节点。
(4). 层序遍历:打印当前层的每一个节点,然后打印下一层的。
2. 递归方式
递归的方式应该是最简单的,只需要控制打印的位置就可以得到想要的结果。
(1). 前序遍历:Leetcode144题。
public List<Integer> preorderTraversal(TreeNode root)
List<Integer> res = new ArrayList<>();
if(root == null)
return res;
preorder(res,root);
return res;
public void preorder(List<Integer> res,TreeNode root)
if(root == null)
return;
res.add(root.val);
preorder(res,root.left);
preorder(res,root.right);
(2). 中序遍历:Leetcode94,只需要对 res.add(root.val) 的位置进行修改就可以,将其放在 preorder(res,root.left); 和 preorder(res,root.right); 之间即为中序遍历:
preorder(res,root.left);
res.add(root.val);
preorder(res,root.right);
(3). 后序遍历:Leetcode145,同样的,后序遍历只需要将其放在添加的最后即可进行后序遍历:
preorder(res,root.left);
preorder(res,root.right);
res.add(root.val);
以上是关于Leetcode:探索二叉树(递归方式,Leetcode144,94,145)的主要内容,如果未能解决你的问题,请参考以下文章
leetcode145——二叉树的后序遍历序列(非递归解法)
leetcode145——二叉树的后序遍历序列(非递归解法)
LeetCode从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树