使用 C++ 打印二叉树中的所有满节点


在这个问题中,我们给定一棵二叉树。我们的任务是打印树中所有是满节点的节点。

二叉树是一种树,其中一个节点最多可以有两个子节点。节点或顶点可以没有节点、一个子节点或两个子节点。

示例 -

满节点是指其左右子节点都存在的节点。换句话说,具有左子节点和右子节点的节点是满节点。在上图的二叉树中,4 和 9 是满节点。

让我们举个例子来理解这个问题 -

输出 - 4 9

解决此问题的一个简单易懂的方法是使用任何遍历算法遍历树。检查当前节点是否具有左子节点和右子节点。如果是,则打印节点的值,否则忽略它。

示例

用于说明我们解决方案的程序,

实时演示

#include <iostream>
using namespace std;
struct Node{
   int data;
   struct Node *left, *right;
};
Node *insertNode(int data){
   Node *temp = new Node;
   temp->data = data;
   temp->left = temp->right = NULL;
   return temp;
}
void printFullNode(Node *root){
   if (root != NULL){
      printFullNode(root->left);
      if (root->left != NULL && root->right != NULL)
         cout<<root->data<<"\t";
      printFullNode(root->right);
   }
}
int main(){
   Node* root = insertNode(100);
   root->left = insertNode(56);
   root->right = insertNode(12);
   root->left->left = insertNode(89);
   root->right->left = insertNode(32);
   root->right->right = insertNode(45);
   cout<<"All full nodes of the tree are :\n";
   printFullNode(root);
   return 0;
}

输出

All full nodes of the tree are −
100 12

更新于: 2020-01-22

520 次浏览

启动你的 职业生涯

通过完成课程获得认证

立即开始
广告