一. 中序遍历 (Inorder-Traversal)
思路:
首先中序遍历该节点的左子树, 然后遍历该节点,最后中序遍历该节点的右子树.
代码:
class Solution {
public:
/*
* @param root: A Tree
* @return: Inorder in ArrayList which contains node values.
*/
vector<int> vec;
vector<int> inorderTraversal(TreeNode * root) {
if (root != NULL)
{
inorderTraversal(root->left);
vec.push_back(root->val);
inorderTraversal(root->right);
}
return vec;
}
};
二.前序遍历 (Preorder-Traversal)
思路:
首先遍历该节点,再前序遍历该节点的左子树,最后前序遍历该节点的右子树.
代码:
class Solution {
public:
/*
* @param root: A Tree
* @return: Preorder in ArrayList which contains node values.
*/
vector<int> vec;
vector<int> preorderTraversal(TreeNode * root) {
if (root != NULL)
{
vec.push_back(root->val);
preorderTraversal(root->left);
preorderTraversal(root->right);
}
return vec;
}
};三. 后序遍历 (Postorder-Traversal)
思路:
首先后序遍历该节点的左子树, 然后后序遍历该节点的右子树, 最后遍历该节点
代码:
class Solution {
public:
/*
* @param root: A Tree
* @return: Postorder in ArrayList which contains node values.
*/
vector<int> vec;
vector<int> postorderTraversal(TreeNode * root) {
if (root != NULL)
{
postorderTraversal(root->left);
postorderTraversal(root->right);
vec.push_back(root->val);
}
return vec;
}
};
本文详细介绍了二叉树的三种基本遍历方法:中序遍历、前序遍历和后序遍历,并提供了每种遍历方式的实现代码。

5098

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



