力扣144题 二叉树的前序遍历解题思路和步骤 C++代码实现 力扣每题自带的代码是什么
问题描述
力扣第144题要求实现一个函数,该函数接收一个二叉树的根节点,并返回该树的前序遍历结果。前序遍历是一种深度优先搜索算法,其遍历顺序为:根节点、左子树、右子树。
解题思路
解决这个问题的关键在于理解前序遍历的顺序,即先访问根节点,递归地访问左子树,递归地访问右子树。我们可以使用递归或迭代(借助栈)的方式来实现这一算法。
递归方法
递归方法直观且易于实现。我们从根节点开始,访问根节点,递归地对左子树和右子树进行前序遍历。
C++代码实现
struct TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: vector preorderTraversal(TreeNode root) { vector result; helper(root, result); return result; } void helper(TreeNode node, vector& result) { if (!node) return; result.push_back(node->val); // 访问根节点 helper(node->left, result); // 递归访问左子树 helper(node->right, result); // 递归访问右子树 } };
原创内容 转载请注明出处