1 // 树的结点
2 struct TreeNode
3 {
4 int value;
5 TreeNode* left;
6 TreeNode* right;
7 TreeNode(int x) : value(x), left(NULL), right(NULL) {}
8 };
9
10 // 先序遍历
11 void PreOrderTraversal(TreeNode* root, std::vector<int>& vals)
12 {
13 if(root == NULL)
14 {
15 return;
16 }
17
18 vals.push_back(root->value);
19 PreOrderTraversal(root->left, vals);
20 PreOrderTraversal(root->right, vals);
21 }
22
23 // 中序遍历
24 void InOrderTraversal(TreeNode* root, std::vector<int>& vals)
25 {
26 if(root == NULL)
27 {
28 return;
29 }
30
31 InOrderTraversal(root->left, vals);
32 vals.push_back(root->value);
33 InOrderTraversal(root->right, vals);
34 }
35
36 // 后序遍历
37 void PostOrderTraversal(TreeNode* root, std::vector<int>& vals)
38 {
39 if(root == NULL)
40 {
41 return;
42 }
43
44 PostOrderTraversal(root->left);
45 PostOrderTraversal(root->right);
46 vals.push_back(root->value);
47 }