C++列印二叉樹的所有內部節點
在這個問題中,我們給定一棵二叉樹,需要打印出二叉樹的所有內部節點。
二叉樹是一種樹,其中每個節點最多可以有兩個子節點。節點或頂點可以沒有子節點,一個子節點或兩個子節點。
示例−

內部節點是指至少有一個子節點的節點,即非葉子節點是內部節點。
讓我們來看一個例子來理解這個問題−

輸出− 7 4 9
為了解決這個問題,我們將使用BFS(廣度優先搜尋)遍歷二叉樹。
在遍歷過程中,我們將節點壓入佇列。當我們從佇列中彈出元素時,我們將列印樹中所有沒有任何子節點的節點。
示例
我們的邏輯由以下程式碼實現:
#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node *left, *right;
Node(int data){
left = right = NULL;
this->data = data;
}
};
void printNonLeafNodes(Node* root) {
queue<Node*> treeNodes;
treeNodes.push(root);
while (!treeNodes.empty()) {
Node* curr = treeNodes.front();
treeNodes.pop();
bool isInternal = 0;
if (curr->left) {
isInternal = 1;
treeNodes.push(curr->left);
}
if (curr->right) {
isInternal = 1;
treeNodes.push(curr->right);
}
if (isInternal)
cout<<curr->data<<"\t";
}
}
int main() {
Node* root = new Node(43);
root->left = new Node(12);
root->right = new Node(78);
root->left->left = new Node(4);
root->right->left = new Node(9);
root->right->right = new Node(1);
root->right->right->right = new Node(50);
root->right->right->left = new Node(25);
cout<<"All internal Nodes of the binary tree are :\n";
printNonLeafNodes(root);
return 0;
}輸出
All internal Nodes of the binary tree are − 43 12 78 1
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP