Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wwwanlingxiao
LeetCodeAnimation
Commits
c1aef7e0
"eladmin-generator/pom.xml" did not exist on "307840883264dcf57b0491c2707ca7de97f3ce65"
Commit
c1aef7e0
authored
May 02, 2019
by
misterbooo
Browse files
Remove Code
parent
5871d9af
Changes
146
Hide whitespace changes
Inline
Side-by-side
0094-Binary-Tree-Inorder-Traversal/cpp-0094/main4.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2017-05-30
#include
<iostream>
#include
<vector>
#include
<stack>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// Another Classic Non-Recursive algorithm for inorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
class
Solution
{
public:
vector
<
int
>
inorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
if
(
root
==
NULL
)
return
res
;
stack
<
TreeNode
*>
stack
;
TreeNode
*
cur
=
root
;
while
(
cur
!=
NULL
||
!
stack
.
empty
()){
if
(
cur
!=
NULL
){
stack
.
push
(
cur
);
cur
=
cur
->
left
;
}
else
{
cur
=
stack
.
top
();
stack
.
pop
();
res
.
push_back
(
cur
->
val
);
cur
=
cur
->
right
;
}
}
return
res
;
}
};
int
main
()
{
return
0
;
}
0094-Binary-Tree-Inorder-Traversal/cpp-0094/main5.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2018-05-30
#include
<iostream>
#include
<vector>
#include
<stack>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// InOrder Morris Traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(1)
class
Solution
{
public:
vector
<
int
>
inorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
if
(
root
==
NULL
)
return
res
;
TreeNode
*
cur
=
root
;
while
(
cur
!=
NULL
){
if
(
cur
->
left
==
NULL
){
res
.
push_back
(
cur
->
val
);
cur
=
cur
->
right
;
}
else
{
TreeNode
*
prev
=
cur
->
left
;
while
(
prev
->
right
!=
NULL
&&
prev
->
right
!=
cur
)
prev
=
prev
->
right
;
if
(
prev
->
right
==
NULL
){
prev
->
right
=
cur
;
cur
=
cur
->
left
;
}
else
{
prev
->
right
=
NULL
;
res
.
push_back
(
cur
->
val
);
cur
=
cur
->
right
;
}
}
}
return
res
;
}
};
int
main
()
{
return
0
;
}
0094-Binary-Tree-Inorder-Traversal/java-0094/src/Solution1.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2017-11-17
import
java.util.ArrayList
;
import
java.util.List
;
// Recursive
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
public
class
Solution1
{
public
List
<
Integer
>
inorderTraversal
(
TreeNode
root
)
{
ArrayList
<
Integer
>
res
=
new
ArrayList
<
Integer
>();
inorderTraversal
(
root
,
res
);
return
res
;
}
private
void
inorderTraversal
(
TreeNode
node
,
List
<
Integer
>
list
){
if
(
node
!=
null
){
inorderTraversal
(
node
.
left
,
list
);
list
.
add
(
node
.
val
);
inorderTraversal
(
node
.
right
,
list
);
}
}
}
0094-Binary-Tree-Inorder-Traversal/java-0094/src/Solution2.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2017-11-17
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Stack
;
// My Non-Recursive
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
public
class
Solution2
{
private
class
Command
{
String
s
;
// go, print
TreeNode
node
;
Command
(
String
s
,
TreeNode
node
){
this
.
s
=
s
;
this
.
node
=
node
;
}
};
public
List
<
Integer
>
inorderTraversal
(
TreeNode
root
)
{
ArrayList
<
Integer
>
res
=
new
ArrayList
<
Integer
>();
if
(
root
==
null
)
return
res
;
Stack
<
Command
>
stack
=
new
Stack
<
Command
>();
stack
.
push
(
new
Command
(
"go"
,
root
));
while
(!
stack
.
empty
()){
Command
command
=
stack
.
pop
();
if
(
command
.
s
.
equals
(
"print"
))
res
.
add
(
command
.
node
.
val
);
else
{
assert
command
.
s
.
equals
(
"go"
);
if
(
command
.
node
.
right
!=
null
)
stack
.
push
(
new
Command
(
"go"
,
command
.
node
.
right
));
stack
.
push
(
new
Command
(
"print"
,
command
.
node
));
if
(
command
.
node
.
left
!=
null
)
stack
.
push
(
new
Command
(
"go"
,
command
.
node
.
left
));
}
}
return
res
;
}
}
0094-Binary-Tree-Inorder-Traversal/java-0094/src/Solution3.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2018-05-30
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Stack
;
// Classic Non-Recursive algorithm for inorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
public
class
Solution3
{
public
List
<
Integer
>
inorderTraversal
(
TreeNode
root
)
{
ArrayList
<
Integer
>
res
=
new
ArrayList
<
Integer
>();
if
(
root
==
null
)
return
res
;
Stack
<
TreeNode
>
stack
=
new
Stack
<>();
TreeNode
cur
=
root
;
while
(
cur
!=
null
||
!
stack
.
empty
()){
while
(
cur
!=
null
){
stack
.
push
(
cur
);
cur
=
cur
.
left
;
}
cur
=
stack
.
pop
();
res
.
add
(
cur
.
val
);
cur
=
cur
.
right
;
}
return
res
;
}
}
0094-Binary-Tree-Inorder-Traversal/java-0094/src/Solution4.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2018-05-30
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Stack
;
// Another Classic Non-Recursive algorithm for inorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
public
class
Solution4
{
public
List
<
Integer
>
inorderTraversal
(
TreeNode
root
)
{
ArrayList
<
Integer
>
res
=
new
ArrayList
<
Integer
>();
if
(
root
==
null
)
return
res
;
Stack
<
TreeNode
>
stack
=
new
Stack
<>();
TreeNode
cur
=
root
;
while
(
cur
!=
null
||
!
stack
.
empty
()){
if
(
cur
!=
null
){
stack
.
push
(
cur
);
cur
=
cur
.
left
;
}
else
{
cur
=
stack
.
pop
();
res
.
add
(
cur
.
val
);
cur
=
cur
.
right
;
}
}
return
res
;
}
}
0094-Binary-Tree-Inorder-Traversal/java-0094/src/Solution5.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-inorder-traversal/
/// Author : liuyubobobo
/// Time : 2018-05-30
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Stack
;
// Inorder Morris Traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(1)
public
class
Solution5
{
public
List
<
Integer
>
inorderTraversal
(
TreeNode
root
)
{
ArrayList
<
Integer
>
res
=
new
ArrayList
<
Integer
>();
if
(
root
==
null
)
return
res
;
TreeNode
cur
=
root
;
while
(
cur
!=
null
){
if
(
cur
.
left
==
null
){
res
.
add
(
cur
.
val
);
cur
=
cur
.
right
;
}
else
{
TreeNode
prev
=
cur
.
left
;
while
(
prev
.
right
!=
null
&&
prev
.
right
!=
cur
)
prev
=
prev
.
right
;
if
(
prev
.
right
==
null
){
prev
.
right
=
cur
;
cur
=
cur
.
left
;
}
else
{
prev
.
right
=
null
;
res
.
add
(
cur
.
val
);
cur
=
cur
.
right
;
}
}
}
return
res
;
}
}
0094-Binary-Tree-Inorder-Traversal/java-0094/src/TreeNode.java
deleted
100755 → 0
View file @
5871d9af
// Definition for a binary tree node.
public
class
TreeNode
{
int
val
;
TreeNode
left
;
TreeNode
right
;
TreeNode
(
int
x
)
{
val
=
x
;
}
}
\ No newline at end of file
0102-Binary-Tree-Level-Order-Traversal/cpp-0102/CMakeLists.txt
deleted
100755 → 0
View file @
5871d9af
cmake_minimum_required
(
VERSION 3.5
)
project
(
cpp_0102
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-std=c++11"
)
set
(
SOURCE_FILES main2.cpp
)
add_executable
(
cpp_0102
${
SOURCE_FILES
}
)
\ No newline at end of file
0102-Binary-Tree-Level-Order-Traversal/cpp-0102/main.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-level-order-traversal/description/
/// Author : liuyubobobo
/// Time : 2017-11-17
#include
<iostream>
#include
<vector>
#include
<queue>
#include
<cassert>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
/// BFS
/// Time Complexity: O(n), where n is the number of nodes in the tree
/// Space Complexity: O(n)
class
Solution
{
public:
vector
<
vector
<
int
>>
levelOrder
(
TreeNode
*
root
)
{
vector
<
vector
<
int
>>
res
;
if
(
root
==
NULL
)
return
res
;
queue
<
pair
<
TreeNode
*
,
int
>>
q
;
q
.
push
(
make_pair
(
root
,
0
));
while
(
!
q
.
empty
()){
TreeNode
*
node
=
q
.
front
().
first
;
int
level
=
q
.
front
().
second
;
q
.
pop
();
if
(
level
==
res
.
size
())
res
.
push_back
(
vector
<
int
>
());
assert
(
level
<
res
.
size
()
);
res
[
level
].
push_back
(
node
->
val
);
if
(
node
->
left
)
q
.
push
(
make_pair
(
node
->
left
,
level
+
1
));
if
(
node
->
right
)
q
.
push
(
make_pair
(
node
->
right
,
level
+
1
));
}
return
res
;
}
};
int
main
()
{
return
0
;
}
\ No newline at end of file
0102-Binary-Tree-Level-Order-Traversal/cpp-0102/main2.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-level-order-traversal/description/
/// Author : liuyubobobo
/// Time : 2018-10-16
#include
<iostream>
#include
<vector>
#include
<queue>
#include
<cassert>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
/// BFS
/// No need to store level information in the queue :-)
///
/// Time Complexity: O(n), where n is the number of nodes in the tree
/// Space Complexity: O(n)
class
Solution
{
public:
vector
<
vector
<
int
>>
levelOrder
(
TreeNode
*
root
)
{
vector
<
vector
<
int
>>
res
;
if
(
root
==
NULL
)
return
res
;
queue
<
TreeNode
*>
q
;
q
.
push
(
root
);
int
level_num
=
1
;
while
(
!
q
.
empty
()){
int
new_level_num
=
0
;
vector
<
int
>
level
;
for
(
int
i
=
0
;
i
<
level_num
;
i
++
){
TreeNode
*
node
=
q
.
front
();
q
.
pop
();
level
.
push_back
(
node
->
val
);
if
(
node
->
left
){
q
.
push
(
node
->
left
);
new_level_num
++
;
}
if
(
node
->
right
){
q
.
push
(
node
->
right
);
new_level_num
++
;
}
}
res
.
push_back
(
level
);
level_num
=
new_level_num
;
}
return
res
;
}
};
int
main
()
{
return
0
;
}
\ No newline at end of file
0102-Binary-Tree-Level-Order-Traversal/java-0102/src/Solution.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-level-order-traversal/description/
/// Author : liuyubobobo
/// Time : 2017-11-17
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.LinkedList
;
import
javafx.util.Pair
;
/// BFS
/// Time Complexity: O(n), where n is the number of nodes in the tree
/// Space Complexity: O(n)
class
Solution
{
public
List
<
List
<
Integer
>>
levelOrder
(
TreeNode
root
)
{
ArrayList
<
List
<
Integer
>>
res
=
new
ArrayList
<>();
if
(
root
==
null
)
return
res
;
LinkedList
<
Pair
<
TreeNode
,
Integer
>>
queue
=
new
LinkedList
<>();
queue
.
addLast
(
new
Pair
<>(
root
,
0
));
while
(!
queue
.
isEmpty
()){
Pair
<
TreeNode
,
Integer
>
front
=
queue
.
removeFirst
();
TreeNode
node
=
front
.
getKey
();
int
level
=
front
.
getValue
();
if
(
level
==
res
.
size
())
res
.
add
(
new
ArrayList
<>());
assert
level
<
res
.
size
();
res
.
get
(
level
).
add
(
node
.
val
);
if
(
node
.
left
!=
null
)
queue
.
addLast
(
new
Pair
<>(
node
.
left
,
level
+
1
));
if
(
node
.
right
!=
null
)
queue
.
addLast
(
new
Pair
<>(
node
.
right
,
level
+
1
));
}
return
res
;
}
}
0102-Binary-Tree-Level-Order-Traversal/java-0102/src/Solution2.java
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-level-order-traversal/description/
/// Author : liuyubobobo
/// Time : 2018-10-16
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.LinkedList
;
import
java.util.Queue
;
/// BFS
/// No need to store level information in the queue :-)
///
/// Time Complexity: O(n), where n is the number of nodes in the tree
/// Space Complexity: O(n)
class
Solution2
{
public
List
<
List
<
Integer
>>
levelOrder
(
TreeNode
root
)
{
ArrayList
<
List
<
Integer
>>
res
=
new
ArrayList
<>();
if
(
root
==
null
)
return
res
;
Queue
<
TreeNode
>
queue
=
new
LinkedList
<>();
queue
.
add
(
root
);
int
levelNum
=
1
;
while
(!
queue
.
isEmpty
()){
int
newLevelNum
=
0
;
ArrayList
<
Integer
>
level
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
levelNum
;
i
++){
TreeNode
node
=
queue
.
remove
();
level
.
add
(
node
.
val
);
if
(
node
.
left
!=
null
){
queue
.
add
(
node
.
left
);
newLevelNum
++;
}
if
(
node
.
right
!=
null
){
queue
.
add
(
node
.
right
);
newLevelNum
++;
}
}
res
.
add
(
level
);
levelNum
=
newLevelNum
;
}
return
res
;
}
}
0102-Binary-Tree-Level-Order-Traversal/java-0102/src/TreeNode.java
deleted
100755 → 0
View file @
5871d9af
// Definition for a binary tree node.
public
class
TreeNode
{
int
val
;
TreeNode
left
;
TreeNode
right
;
TreeNode
(
int
x
)
{
val
=
x
;
}
}
\ No newline at end of file
0144-Binary-Tree-Preorder-Traversal/cpp-0144/CMakeLists.txt
deleted
100755 → 0
View file @
5871d9af
cmake_minimum_required
(
VERSION 3.5
)
project
(
cpp_0144
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-std=c++11"
)
set
(
SOURCE_FILES main5.cpp
)
add_executable
(
cpp_0144
${
SOURCE_FILES
}
)
\ No newline at end of file
0144-Binary-Tree-Preorder-Traversal/cpp-0144/main.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-preorder-traversal/description/
/// Author : liuyubobobo
/// Time : 2017-11-17
#include
<iostream>
#include
<vector>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// Recursive
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
class
Solution
{
public:
vector
<
int
>
preorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
preorderTraversal
(
root
,
res
);
return
res
;
}
private:
void
preorderTraversal
(
TreeNode
*
node
,
vector
<
int
>
&
res
){
if
(
node
){
res
.
push_back
(
node
->
val
);
preorderTraversal
(
node
->
left
,
res
);
preorderTraversal
(
node
->
right
,
res
);
}
}
};
int
main
()
{
return
0
;
}
0144-Binary-Tree-Preorder-Traversal/cpp-0144/main2.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-preorder-traversal/description/
/// Author : liuyubobobo
/// Time : 2017-11-17
#include
<iostream>
#include
<vector>
#include
<stack>
#include
<cassert>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// My Non-Recursive
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
class
Solution
{
private:
struct
Command
{
string
s
;
// go, print
TreeNode
*
node
;
Command
(
string
s
,
TreeNode
*
node
)
:
s
(
s
),
node
(
node
){}
};
public:
vector
<
int
>
preorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
if
(
root
==
NULL
)
return
res
;
stack
<
Command
>
stack
;
stack
.
push
(
Command
(
"go"
,
root
));
while
(
!
stack
.
empty
()){
Command
command
=
stack
.
top
();
stack
.
pop
();
if
(
command
.
s
==
"print"
)
res
.
push_back
(
command
.
node
->
val
);
else
{
assert
(
command
.
s
==
"go"
);
if
(
command
.
node
->
right
)
stack
.
push
(
Command
(
"go"
,
command
.
node
->
right
));
if
(
command
.
node
->
left
)
stack
.
push
(
Command
(
"go"
,
command
.
node
->
left
));
stack
.
push
(
Command
(
"print"
,
command
.
node
));
}
}
return
res
;
}
};
int
main
()
{
return
0
;
}
0144-Binary-Tree-Preorder-Traversal/cpp-0144/main3.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-preorder-traversal/description/
/// Author : liuyubobobo
/// Time : 2017-11-17
#include
<iostream>
#include
<vector>
#include
<stack>
#include
<cassert>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// Classic Non-Recursive algorithm for preorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
class
Solution
{
public:
vector
<
int
>
preorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
if
(
root
==
NULL
)
return
res
;
stack
<
TreeNode
*>
stack
;
stack
.
push
(
root
);
while
(
!
stack
.
empty
()){
TreeNode
*
curNode
=
stack
.
top
();
stack
.
pop
();
res
.
push_back
(
curNode
->
val
);
if
(
curNode
->
right
)
stack
.
push
(
curNode
->
right
);
if
(
curNode
->
left
)
stack
.
push
(
curNode
->
left
);
}
return
res
;
}
};
int
main
()
{
return
0
;
}
0144-Binary-Tree-Preorder-Traversal/cpp-0144/main4.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-preorder-traversal/description/
/// Author : liuyubobobo
/// Time : 2018-05-30
#include
<iostream>
#include
<vector>
#include
<stack>
#include
<cassert>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// Another Classic Non-Recursive algorithm for preorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
class
Solution
{
public:
vector
<
int
>
preorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
if
(
root
==
NULL
)
return
res
;
stack
<
TreeNode
*>
stack
;
TreeNode
*
cur
=
root
;
while
(
cur
!=
NULL
||
!
stack
.
empty
()){
while
(
cur
!=
NULL
){
res
.
push_back
(
cur
->
val
);
stack
.
push
(
cur
);
cur
=
cur
->
left
;
}
cur
=
stack
.
top
();
stack
.
pop
();
cur
=
cur
->
right
;
}
return
res
;
}
};
void
print_vec
(
const
vector
<
int
>&
vec
){
for
(
int
e
:
vec
)
cout
<<
e
<<
" "
;
cout
<<
endl
;
}
int
main
()
{
TreeNode
*
root
=
new
TreeNode
(
1
);
root
->
right
=
new
TreeNode
(
2
);
root
->
right
->
left
=
new
TreeNode
(
3
);
vector
<
int
>
res
=
Solution
().
preorderTraversal
(
root
);
print_vec
(
res
);
return
0
;
}
0144-Binary-Tree-Preorder-Traversal/cpp-0144/main5.cpp
deleted
100755 → 0
View file @
5871d9af
/// Source : https://leetcode.com/problems/binary-tree-preorder-traversal/description/
/// Author : liuyubobobo
/// Time : 2018-05-30
#include
<iostream>
#include
<vector>
#include
<stack>
#include
<cassert>
using
namespace
std
;
/// Definition for a binary tree node.
struct
TreeNode
{
int
val
;
TreeNode
*
left
;
TreeNode
*
right
;
TreeNode
(
int
x
)
:
val
(
x
),
left
(
NULL
),
right
(
NULL
)
{}
};
// Another Classic Non-Recursive algorithm for preorder traversal
// Time Complexity: O(n), n is the node number in the tree
// Space Complexity: O(h), h is the height of the tree
class
Solution
{
public:
vector
<
int
>
preorderTraversal
(
TreeNode
*
root
)
{
vector
<
int
>
res
;
if
(
root
==
NULL
)
return
res
;
stack
<
TreeNode
*>
stack
;
TreeNode
*
cur
=
root
;
while
(
cur
!=
NULL
||
!
stack
.
empty
()){
if
(
cur
!=
NULL
){
res
.
push_back
(
cur
->
val
);
stack
.
push
(
cur
);
cur
=
cur
->
left
;
}
else
{
cur
=
stack
.
top
();
stack
.
pop
();
cur
=
cur
->
right
;
}
}
return
res
;
}
};
void
print_vec
(
const
vector
<
int
>&
vec
){
for
(
int
e
:
vec
)
cout
<<
e
<<
" "
;
cout
<<
endl
;
}
int
main
()
{
TreeNode
*
root
=
new
TreeNode
(
1
);
root
->
right
=
new
TreeNode
(
2
);
root
->
right
->
left
=
new
TreeNode
(
3
);
vector
<
int
>
res
=
Solution
().
preorderTraversal
(
root
);
print_vec
(
res
);
return
0
;
}
Prev
1
2
3
4
5
6
7
8
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment