Leetcode中关于树的遍历的题目

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

对于非计算机专业的朋友来讲,对于数据结构中的不甚了解。建议可以读一些数据结构方面的书来进阶一下。

数据结构主要对于 二叉树 进行展开谈论的。

在面试的过程中,算法是绕不开的话题(如今互联网圈也是越来越卷啦)。这篇文章主要来聊一下关于Leetcode上关于树的遍历的相关题目。

关于树的遍历方法,主要有以下四种:

  1. 前序遍历 (根 --> 左 --> 右)
  2. 中序遍历 (左 --> 根 --> 右)
  3. 后序遍历 (左 --> 右 --> 根)
  4. 层次遍历

这里需要明确一点:所谓的前中后,针对的是根节点的位置。

另外,层次遍历 跟 前中后序遍历的思想有所差别,故决定在下一篇文章进行展开。


1. 关于二叉树的遍历(前,中,后)

144. 二叉树的前序遍历

递归解法:

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;
}

94. 二叉树的中序遍历

递归解法:

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;
}

145. 二叉树的后序遍历

递归解法:

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叉树的遍历(前,后)

其实和二叉树的思路是完全一样的。

589. N 叉树的前序遍历
590. N 叉树的后序遍历

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值