#include<bits/stdc++.h>
using
namespace
std;
struct
Node
{
int
data ;
struct
Node * left, * right ;
};
struct
Node * newNode(
int
data)
{
struct
Node * node =
new
Node;
node->data = data;
node->left = node->right = NULL;
return
(node);
}
int
kLeaves(
struct
Node *ptr,
int
k)
{
if
(ptr == NULL)
return
0;
if
(ptr->left == NULL && ptr->right == NULL)
return
1;
int
total = kLeaves(ptr->left, k) +
kLeaves(ptr->right, k);
if
(k == total)
cout << ptr->data <<
" "
;
return
total;
}
int
main()
{
struct
Node *root = newNode(1);
root->left = newNode(2);
root->right = newNode(4);
root->left->left = newNode(5);
root->left->right = newNode(6);
root->left->left->left = newNode(9);
root->left->left->right = newNode(10);
root->right->right = newNode(8);
root->right->left = newNode(7);
root->right->left->left = newNode(11);
root->right->left->right = newNode(12);
kLeaves(root, 2);
return
0;
}