对于非计算机专业的朋友来讲,对于数据结构中的树不甚了解。建议可以读一些数据结构方面的书来进阶一下。
数据结构主要对于 二叉树 进行展开谈论的。
在面试的过程中,算法是绕不开的话题(如今互联网圈也是越来越卷啦)。这篇文章主要来聊一下关于Leetcode上关于树的遍历的相关题目。
关于树的遍历方法,主要有以下四种:
- 前序遍历 (根 --> 左 --> 右)
- 中序遍历 (左 --> 根 --> 右)
- 后序遍历 (左 --> 右 --> 根)
- 层次遍历
这里需要明确一点:所谓的前中后,针对的是根节点的位置。
另外,层次遍历 跟 前中后序遍历的思想有所差别,故决定在下一篇文章进行展开。
1. 关于二叉树的遍历(前,中,后)
递归解法:
List<Integer> result = new ArrayList<>();
public List<Integer> preOrder(TreeNode root) {
// 递归的终止条件
if (root == null) {
return;
}
// 处理根节点(无论是:煎、炒、烹、炸、蒸、煮、炖 皆可)
System.out.print(root.val + ","); // 这是大学教材中的常用模版
result.add(root.val);
// 递归左子树
preOrder(root.left);
// 递归右子树
preOrder(root.right);
return result;
}
递归解法:
List<Integer> result = new ArrayList<>();
public List<Integer> inOrder(TreeNode root){
if(root == null){
return null;
}
inOrder(root.left);
System.out.println(root.val+",");
result.add(root.val);
inOrder(root.right);
return result;
}
递归解法:
List<Integer> result = new ArrayList<>();
public List<Integer> postOrder(TreeNode root){
if(root == null){
return null;
}
postOrder(root.left);
postOrder(root.right);
System.out.println(root.val+",");
result.add(root.val);
return result;
}
2. 关于N叉树的遍历(前,后)
其实和二叉树的思路是完全一样的。

本文详细介绍了二叉树和N叉树的遍历方法,包括前序、中序、后序及层次遍历等,并提供了具体的Leetcode题目示例代码。
445

被折叠的 条评论
为什么被折叠?



