力扣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; // 返回遍历结果 } };
原创内容 转载请注明出处