[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/coder-writes/tree-notes/main/26rootToNodePath.cpp [Back]  [Original]

#include 
using namespace std;
struct TreeNode
{
    int data;
    struct TreeNode* left;
    struct TreeNode* right;

    TreeNode(int val)
    {
        data = val;
        left = NULL;
        right =   NULL;
    }
    
};
bool helper(TreeNode* root,int A,vector &arr){
    if(root==NULL){
        return false;
    }

    arr.push_back(root->data);
    if(root->data==A){
        return true;
    }

    if(helper(root->left,A,arr) || helper(root->right,A,arr))
        return true;

    arr.pop_back();
    return false;
}
vector  rootToNodePath(TreeNode* root,int A){
    vectorarr;
    if(root==NULL){
        return arr;
    }
    helper(root,A,arr);
    return arr;
}
int main(){
    struct TreeNode*  root = new TreeNode(2);
    root->left = new TreeNode(5);
    root->left->left = new TreeNode(4);
    root->left->left->left  = new TreeNode(3);
    root->left->left->right  = new TreeNode(2);
    root->left->right = new TreeNode(5);
    root->right = new TreeNode(7);
    root->right->left = new TreeNode(9);
    root->right->left->right = new TreeNode(2);
    root->right->left->right->right = new TreeNode(4);
    root->right->left->right->left = new TreeNode(1);
    root->right->left->left = new TreeNode(3);
    root->right->right = new TreeNode(7);

    for(auto &val: rootToNodePath(root,1)){
        cout

Web Proxy Viewer  |  New URL  |  Original Page