对于一颗普通的二叉树和一个节点key,找出该节点的所有祖先节点。
#include <iostream>
using namespace std;
struct Node{
int val;
Node *left,*right;
};
bool print_pre_node(Node *root, int val) {
if(root == NULL) return false;
if(root -> val == val) { return true; }
if(print_pre_node(root -> left, val) || print_pre_node(root -> right, val)) {
cout<<root -> val<<ends;
return true;
}
return false;
}
struct Node* newnode(int val) {
Node *node = new Node();
node -> val = val;
node -> left = NULL;
node -> right = NULL;
return node;
}
int main() {
Node *root = newnode(1);
root -> left = newnode(2);
root -> right = newnode(3);
root -> left -> left = newnode(4);
root -> left -> right = newnode(5);
root -> left -> left -> left = newnode(7);
print_pre_node(root,7);
system("PAUSE");
}