力扣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); // 递归访问右子树
}
}; 原创内容 转载请注明出处
