Skip to content

Commit aaa7dae

Browse files
committed
refactored C style to C++ style
1 parent fbb284a commit aaa7dae

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

C++/chapTree.tex

+14-19
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,11 @@ \subsubsection{栈}
5656
public:
5757
vector<int> preorderTraversal(TreeNode *root) {
5858
vector<int> result;
59-
const TreeNode *p;
6059
stack<const TreeNode *> s;
61-
62-
p = root;
63-
if (p != nullptr) s.push(p);
60+
if (root != nullptr) s.push(root);
6461

6562
while (!s.empty()) {
66-
p = s.top();
63+
const TreeNode *p = s.top();
6764
s.pop();
6865
result.push_back(p->val);
6966

@@ -84,9 +81,8 @@ \subsubsection{Morris先序遍历}
8481
public:
8582
vector<int> preorderTraversal(TreeNode *root) {
8683
vector<int> result;
87-
TreeNode *cur, *prev;
84+
TreeNode *cur = root, *prev = nullptr;
8885

89-
cur = root;
9086
while (cur != nullptr) {
9187
if (cur->left == nullptr) {
9288
result.push_back(cur->val);
@@ -157,8 +153,8 @@ \subsubsection{栈}
157153
public:
158154
vector<int> inorderTraversal(TreeNode *root) {
159155
vector<int> result;
160-
const TreeNode *p = root;
161156
stack<const TreeNode *> s;
157+
const TreeNode *p = root;
162158

163159
while (!s.empty() || p != nullptr) {
164160
if (p != nullptr) {
@@ -185,9 +181,8 @@ \subsubsection{Morris中序遍历}
185181
public:
186182
vector<int> inorderTraversal(TreeNode *root) {
187183
vector<int> result;
188-
TreeNode *cur, *prev;
184+
TreeNode *cur = root, *prev = nullptr;
189185

190-
cur = root;
191186
while (cur != nullptr) {
192187
if (cur->left == nullptr) {
193188
result.push_back(cur->val);
@@ -258,11 +253,9 @@ \subsubsection{栈}
258253
public:
259254
vector<int> postorderTraversal(TreeNode *root) {
260255
vector<int> result;
261-
/* p,正在访问的结点,q,刚刚访问过的结点*/
262-
const TreeNode *p, *q;
263256
stack<const TreeNode *> s;
264-
265-
p = root;
257+
/* p,正在访问的结点,q,刚刚访问过的结点*/
258+
const TreeNode *p = root, *q = nullptr;
266259

267260
do {
268261
while (p != nullptr) { /* 往左下走*/
@@ -438,13 +431,16 @@ \subsubsection{迭代版}
438431
public:
439432
vector<vector<int> > levelOrder(TreeNode *root) {
440433
vector<vector<int> > result;
441-
if(root == nullptr) return result;
442-
443434
queue<TreeNode*> current, next;
444-
vector<int> level; // elments in level level
435+
436+
if(root == nullptr) {
437+
return result;
438+
} else {
439+
current.push(root);
440+
}
445441

446-
current.push(root);
447442
while (!current.empty()) {
443+
vector<int> level; // elments in one level
448444
while (!current.empty()) {
449445
TreeNode* node = current.front();
450446
current.pop();
@@ -453,7 +449,6 @@ \subsubsection{迭代版}
453449
if (node->right != nullptr) next.push(node->right);
454450
}
455451
result.push_back(level);
456-
level.clear();
457452
swap(next, current);
458453
}
459454
return result;

0 commit comments

Comments
 (0)