代码随想录算法训练营day14|二叉树的遍历

发布时间:2024年01月23日
  • ?理论基础
  • ?递归遍历??
  • ?迭代遍历
  • ?统一迭代

?理论基础?

需要了解?二叉树的种类,存储方式,遍历方式?以及二叉树的定义?

文章讲解:代码随想录

?递归遍历?(必须掌握)

二叉树的三种递归遍历掌握其规律后,其实很简单?

题目链接/文章讲解/视频讲解:代码随想录

?迭代遍历?(基础不好的录友,迭代法可以放过)

题目链接/文章讲解/视频讲解:代码随想录

?统一迭代???(基础不好的录友,迭代法可以放过)

这是统一迭代法的写法,?如果学有余力,可以掌握一下

题目链接/文章讲解:代码随想录

二叉树节点的构造

struct TreeNode {
	int val;
	TreeNode* left;
	TreeNode* right;
	TreeNode(int x) :val(x),left(NULL),right(NULL){}
};

递归遍历

void traversal(TreeNode* cur, vector<int>& vec) {
	if (cur == NULL) return;

	vec.push_back(cur->val);
	traversal(cur->left, vec);
	traversal(cur->right, vec);
}

接受二叉树遍历结果val

vector<int> preorderTraversal(TreeNode* root) {
	vector<int> result;
	traversal(root, result);
	return result;
}

前/中/后序遍历同理


迭代遍历

文章来源:https://blog.csdn.net/2302_79277225/article/details/135705964
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。