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

Lines changed: 14 additions & 19 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy