写一算法把树的所有neighbor指针初始化

节点类型是:

struct Node{

Node * left;

Node* right;

Node* neighbor;// neighbor用来指示同层的下一个邻居节点

}

要求写一算法把树的所有neighbor指针初始化。

 

递归解法如下:

void link(Node * node){

 if(node->left!=null&&node->right!=null){

 node->left->neighbor=node->right;

 }

if(node->neighbor!=null){

node->right->neighbor=node->neighbor->left;

}

if(node->left!=null){

link(node->left);

 }

if(node->right!=null){

link(node->right);

}

  }

你可能感兴趣的:(写一算法把树的所有neighbor指针初始化)