力扣144:递归之美 轻松掌握二叉树前序遍历

题目解读
二叉树的前序遍历是一种基础但重要的树遍历方式,其遍历顺序为:先访问根节点,然后递归地前序遍历左子树,最后递归地前序遍历右子树。给定一个二叉树的根节点,我们需要按照这个顺序访问所有节点,并将它们的值存储在一个列表中返回。这个问题虽然简单,但却是理解更复杂树算法的基础。
解题思路与过程
用递归方法来轻松实现前序遍历。定义一个成员变量ret来存储遍历结果,以及一个辅助函数preorder来完成实际的递归遍历。当遇到空节点时直接返回,否则先将当前节点的值加入结果列表,然后递归处理左子树,最后递归处理右子树。主函数preorderTraversal初始化遍历过程并返回最终结果。
代码实现与注释
class Solution {
public:
vector<int> ret; // 存储遍历结果的容器
// 递归前序遍历辅助函数
void preorder(TreeNode* root)
{
if(!root) // 递归终止条件:空节点
{
return;
}
ret.push_back(root->val); // 访问当前节点(根)
preorder(root->left); // 递归遍历左子树
preorder(root->right); // 递归遍历右子树
}
// 主函数:初始化遍历过程并返回结果
vector<int> preorderTraversal(TreeNode* root) {
preorder(root); // 开始递归遍历
return ret; // 返回遍历结果
}
};
原创内容 转载请注明出处






