二叉树的遍历(递归)

1.前序遍历

struct TreeNode 
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
vector<int> inorderTraversal(TreeNode* root) 
{
    vector<int> Node;
    FindNode(root,Node);
    return Node;
}
void FindNode(TreeNode*root,vector<int>& Node)
{
    if(root == NULL)
        return;
    Node.push_back(root->val);
    FindNode(root->left,Node);
    FindNode(root->right,Node);
}

2.中序遍历

struct TreeNode 
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
vector<int> inorderTraversal(TreeNode* root) 
{
    vector<int> Node;
    FindNode(root,Node);
    return Node;
}
void FindNode(TreeNode*root,vector<int>& Node)
{
    if(root == NULL)
        return;
    FindNode(root->left,Node);
    Node.push_back(root->val);
    FindNode(root->right,Node);
}

3.后序遍历

struct TreeNode 
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
vector<int> inorderTraversal(TreeNode* root) 
{
    vector<int> Node;
    FindNode(root,Node);
    return Node;
}
void FindNode(TreeNode*root,vector<int>& Node)
{
    if(root == NULL)
        return;
    FindNode(root->left,Node);
    FindNode(root->right,Node);
    Node.push_back(root->val);
}

猜你喜欢

转载自www.cnblogs.com/kkyblog/p/11250403.html