binary-tree-inorder-traversal
1.0.0
Binary Tree Inorder Traversal
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1
#include <iostream>
2
#include <vector>
3
#include <stack>
4
#include <algorithm>
5
6
using namespace
std;
7
11
struct
TreeNode
12
{
13
int
val
;
14
TreeNode
*
left
;
15
TreeNode
*
right
;
16
TreeNode
() :
val
(0),
left
(nullptr),
right
(nullptr) {}
17
TreeNode
(
int
x) :
val
(x),
left
(nullptr),
right
(nullptr) {}
18
TreeNode
(
int
x,
TreeNode
*
left
,
TreeNode
*
right
) :
val
(x),
left
(
left
),
right
(
right
) {}
19
};
20
21
class
Solution
22
{
23
public
:
24
vector<int>
inorderTraversal
(
TreeNode
* root)
25
{
26
vector<int> answer = {};
27
stack<TreeNode*> node_stack;
28
TreeNode
* current = root;
29
30
while
(current !=
nullptr
|| !node_stack.empty())
31
{
32
while
(current !=
nullptr
)
33
{
34
node_stack.push(current);
35
current = current->
left
;
36
}
37
current = node_stack.top();
38
node_stack.pop();
39
answer.push_back(current->
val
);
40
current = current->
right
;
41
}
42
43
return
answer;
44
}
45
};
46
47
void
delete_tree
(
TreeNode
* root)
48
{
49
if
(root ==
nullptr
)
50
return
;
51
delete_tree
(root->
left
);
52
delete_tree
(root->
right
);
53
delete
root;
54
}
55
56
int
main
()
57
{
58
TreeNode
* root =
new
TreeNode
(1,
new
TreeNode
(2,
new
TreeNode
(4),
new
TreeNode
(5,
new
TreeNode
(6),
new
TreeNode
(7))),
new
TreeNode
(3, NULL,
new
TreeNode
(8,
new
TreeNode
(9), NULL)));
59
Solution
sol;
60
vector<int> preorder = sol.
inorderTraversal
(root);
61
for
(
int
el: preorder)
62
cout << el <<
", "
;
63
cout << endl;
64
delete_tree
(root);
65
return
0;
66
}
Solution
Definition
main.cpp:22
Solution::inorderTraversal
vector< int > inorderTraversal(TreeNode *root)
Definition
main.cpp:24
delete_tree
void delete_tree(TreeNode *root)
Definition
main.cpp:47
main
int main()
Definition
main.cpp:56
TreeNode
Definition for a binary tree node.
Definition
main.cpp:12
TreeNode::val
int val
Definition
main.cpp:13
TreeNode::left
TreeNode * left
Definition
main.cpp:14
TreeNode::TreeNode
TreeNode(int x, TreeNode *left, TreeNode *right)
Definition
main.cpp:18
TreeNode::right
TreeNode * right
Definition
main.cpp:15
TreeNode::TreeNode
TreeNode(int x)
Definition
main.cpp:17
TreeNode::TreeNode
TreeNode()
Definition
main.cpp:16
main.cpp
Generated by
1.9.8