使用 C++ 中的迭代法,從左到右列印二叉樹中所有葉節點
在此示例中,我們得到了一個二叉樹,我們需要使用迭代法從左到右列印二叉樹的所有葉節點。
我們來舉個例子來理解這個問題
輸入 -

輸出 - 1 4 7
為了使用迭代法解決這個問題,我們將使用深度優先搜尋 (DFS)。為了遍歷樹,我們將從根節點開始,然後檢查它是否為葉節點,如果是,則列印該節點,否則找到它的子樹,並遍歷子子樹以查詢所有葉節點。
示例
以下程式碼將實現我們的解決方案 -
#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 printLTRLeafNodes(Node *root){
if (!root)
return;
if (!root->left && !root->right) {
cout<<root->data<<"\t";
return;
}
if (root->left)
printLTRLeafNodes(root->left);
if (root->right)
printLTRLeafNodes(root->right);
}
int main(){
Node *root = insertNode(21);
root->left = insertNode(5);
root->right = insertNode(36);
root->left->left = insertNode(2);
root->right->left = insertNode(13);
root->right->right = insertNode(4);
root->right->left->left = insertNode(76);
root->right->left->right = insertNode(9);
root->right->right->left = insertNode(17);
root->right->right->right = insertNode(2);
cout<<"Leaf Nodes of the tree from left to rigth are :\n";
printLTRLeafNodes(root);
return 0;
}輸出
Leaf Nodes of the tree from left to right are − 2 76 9 17 2
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP