#include<iostream>
#include<bits/stdc++.h>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(): val(0),left(nullptr),right(nullptr){}
TreeNode(int x):val(x),left(nullptr),right(nullptr){}
TreeNode(int x, TreeNode* left,TreeNode*right):val(x),left(nullptr),right(nullptr){}
};
int main(int argc, char**argv) {
TreeNode* head = new TreeNode(1);
TreeNode* h2 = new TreeNode(2);
TreeNode* h3 = new TreeNode(3);
TreeNode* m2 = new TreeNode(4);
TreeNode* m3 = new TreeNode(5);
TreeNode* m4 = new TreeNode(6);
TreeNode* m5 = new TreeNode(7);
TreeNode* n2 = new TreeNode(8);
TreeNode* n3 = new TreeNode(9);
TreeNode* n4 = new TreeNode(10);
TreeNode* n5 = new TreeNode(11);
TreeNode* n6 = new TreeNode(12);
TreeNode* n7 = new TreeNode(13);
TreeNode* n8 = new TreeNode(14);
TreeNode* n9 = new TreeNode(15);
head->left = h2;
head->right = h3;
h2->left = m2;
h2->right= m3;
h3->left = m4;
h3->right = m5;
m2->left = n2;
m2->right = n3;
m3->left = n4;
m3->right = n5;
m4->left = n6;
m4->right = n7;
m5->left = n8;
m5->right = n9;
}
// 二叉树的三种遍历方式
#include<iostream>
#include<bits/stdc++.h>
#include "TreeNode.h"
using namespace std;
void preOrder(TreeNode* head) {
if(head==nullptr) {
return;
}
cout<<head->val<<" ";
preOrder(head->left);
preOrder(head->right);
}
void inOrder(TreeNode* head) {
if(head==nullptr) {
return;
}
inOrder(head->left);
cout<<head->val<<" ";
inOrder(head->right);
}
void postOrder(TreeNode* head) {
if(head==nullptr) {
return; //
}
postOrder(head->left);
postOrder(head->right);
cout<<head->val<<" ";
}
int main(int argc, char**argv) {
TreeNode* head = new TreeNode(1);
TreeNode* h2 = new TreeNode(2);
TreeNode* h3 = new TreeNode(3);
TreeNode* m2 = new TreeNode(4);
TreeNode* m3 = new TreeNode(5);
TreeNode* m4 = new TreeNode(6);
TreeNode* m5 = new TreeNode(7);
TreeNode* n2 = new TreeNode(8);
TreeNode* n3 = new TreeNode(9);
TreeNode* n4 = new TreeNode(10);
TreeNode* n5 = new TreeNode(11);
TreeNode* n6 = new TreeNode(12);
TreeNode* n7 = new TreeNode(13);
TreeNode* n8 = new TreeNode(14);
TreeNode* n9 = new TreeNode(15);
head->left = h2;
head->right = h3;
h2->left = m2;
h2->right= m3;
h3->left = m4;
h3->right = m5;
m2->left = n2;
m2->right = n3;
m3->left = n4;
m3->right = n5;
m4->left = n6;
m4->right = n7;
m5->left = n8;
m5->right = n9;
preOrder(head);
cout<<endl;
inOrder(head);
cout<<endl;
postOrder(head);
cout<<endl;
return 0;
}