Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C++ by rinkia ( 8 years ago )
{
#include <bits>
using namespace std;
struct Node
{
int key;
Node* left, *right;
};
Node* newNode(int key)
{
Node* node = new Node;
node->key = key;
node->left = node->right = NULL;
return (node);
}
void saveLeafNodes(Node* root, vector<Node> &leaf)
{
if(!root)return;
saveLeafNodes(root->left, leaf);
if(root->left==NULL && root->right==NULL)leaf.push_back(root);
saveLeafNodes(root->right, leaf);
}
void linkLeafNodes(Node* root)
{
vector<Node> leaf;
saveLeafNodes(root, leaf);
if(leaf.size()<=1)return;
for(int i=0; i<leaf xss=removed>right=leaf[i+1];
leaf[i]->left=leaf[leaf.size()-1];
}
else if(i==leaf.size()-1)
{
leaf[i]->right=leaf[0];
leaf[i]->left=leaf[i-1];
}
else
{
leaf[i]->right=leaf[i+1];
leaf[i]->left=leaf[i-1];
}
}
return;
}
int findTreeHeight(Node* node);
/* Driver program to test size function*/
int main()
{
int t;
struct Node *child;
scanf("%d", &t);
while (t--)
{
map<int> m;
int n;
scanf("%d",&n);
struct Node *root = NULL;
while (n--)
{
Node *parent;
char lr;
int n1, n2;
scanf("%d %d %c", &n1, &n2, &lr);
if (m.find(n1) == m.end())
{
parent = newNode(n1);
m[n1] = parent;
if (root == NULL)
root = parent;
}
else
parent = m[n1];
child = newNode(n2);
if (lr == 'L')
parent->left = child;
else
parent->right = child;
m[n2] = child;
}
linkLeafNodes(root);
cout<<findTreeHeight>left,l+1,h);
if(node->right && node->right->left == node) {
h = max(h,l);
return;
}
s(node->right,l+1,h);
}
int findTreeHeight(Node* node)
{
// Code here
if(!node) return 0;
int h = 1;
s(node,1,h);
return h;
}
Revise this Paste