使用 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 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.