当前位置:首页 > 力扣题解 > 力扣144题 二叉树的前序遍历解题思路和步骤 C++代码实现 力扣每题自带的代码是什么

力扣144题 二叉树的前序遍历解题思路和步骤 C++代码实现 力扣每题自带的代码是什么

2周前 (05-19)力扣题解51

截图未命名.jpg 力扣144题 二叉树的前序遍历解题思路和步骤 C++代码实现 力扣每题自带的代码是什么 力扣 算法 递归 二叉树 二叉树遍历 前序遍历 第1张

问题描述

力扣第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); // 递归访问右子树 
    } 
};

原创内容 转载请注明出处

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。