使用递归思想遍历二叉树

二叉树的遍历主要有两种方式:深度优先遍历和广度优先遍历

这篇主要讲使用深度优先遍历来遍历二叉树

深度优先遍历有以下三种

前、中、后序遍历,这三种遍历方式的主要区别是中间节点的位置所在的顺序

前序遍历:中间节点在叶子节点前面

中序遍历:中间节点在叶子节点中间

后续遍历:中间节点在叶子节点后面

本文主要以中序遍历为例讲解递归遍历二叉树的过程

go 复制代码
type TreeNode struct {
	Val   int //值
	Left  *TreeNode
	Right *TreeNode
}

func inorderTraversal(root *TreeNode) []int {
	res := make([]int, 0)
	var traversal func(node *TreeNode)
	traversal = func(node *TreeNode) {
		if node == nil {
			return
		}
		traversal(node.Left)
		res = append(res, node.Val)
		traversal(node.Right)
	}
	traversal(root)
	return res
}
相关推荐
YsyaaabB22 分钟前
ACM 模式通用代码模板
java·c++·python·算法
ComputerInBook34 分钟前
Euclid 几何变换——仿射(affine)变换
算法·仿射变换·几何变换
一只叁木Meow1 小时前
电商 SKU 选择器:用算法实现优雅的用户交互
前端·javascript·算法
代码中介商1 小时前
红黑树完全指南:从五条性质到完整插入删除实现
数据结构·算法
JieE2121 小时前
反转链表:从双指针到递归,吃透链表反转的核心逻辑
javascript·算法
玖釉-2 小时前
旋转图像:从矩阵转置、镜像到坐标变换的系统理解
c++·windows·算法·图形渲染
fengenrong2 小时前
20260522
算法
一条大祥脚2 小时前
Codeforces Round 1099 (Div. 2) 构造|贪心|图论|还原数组
java·算法·图论
Sheldon Chao3 小时前
Lecture 7 基于策略梯度的算法
人工智能·算法·机器学习
始三角龙3 小时前
LeetCode hoot 100 -- 缺失的第一个正整数
算法·leetcode·职场和发展