使用 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
广告