indentation

This commit is contained in:
Jidong Xiao
2025-03-27 23:25:19 -04:00
committed by JamesFlare
parent eb0d7868dc
commit f634f39d05
3 changed files with 42 additions and 42 deletions

View File

@@ -32,26 +32,26 @@ Instead of using extra memory (like recursion stack or an explicit stack), Morri
```cpp ```cpp
void inorderTraversal(TreeNode* root) { void inorderTraversal(TreeNode* root) {
TreeNode *current=root; TreeNode *current=root;
TreeNode *rightmost; TreeNode *rightmost;
while(current!=NULL){ while(current!=NULL){
if(current->left!=NULL){ if(current->left!=NULL){
rightmost=current->left; rightmost=current->left;
while(rightmost->right!=NULL && rightmost->right!=current){ while(rightmost->right!=NULL && rightmost->right!=current){
rightmost=rightmost->right; rightmost=rightmost->right;
} }
if(rightmost->right==NULL){ /* first time */ if(rightmost->right==NULL){ /* first time */
rightmost->right=current; rightmost->right=current;
current=current->left; current=current->left;
}else{ /* second time */ }else{ /* second time */
std::cout << current->val << " ";
rightmost->right=NULL;
current=current->right;
}
}else{ /* nodes which do not have left child */
std::cout << current->val << " "; std::cout << current->val << " ";
rightmost->right=NULL;
current=current->right; current=current->right;
} }
}else{ /* nodes which do not have left child */
std::cout << current->val << " ";
current=current->right;
}
} }
return; return;
} }
@@ -80,19 +80,19 @@ Print the node before going left instead of after restoring links.
```cpp ```cpp
void preorderTraversal(TreeNode* root) { void preorderTraversal(TreeNode* root) {
TreeNode *current=root; TreeNode *current=root;
TreeNode *rightmost; TreeNode *rightmost;
while(current != nullptr){ while(current != nullptr){
if(current->left != nullptr){ if(current->left != nullptr){
rightmost=current->left; rightmost=current->left;
while(rightmost->right!=nullptr && rightmost->right!=current){ while(rightmost->right!=nullptr && rightmost->right!=current){
rightmost=rightmost->right; rightmost=rightmost->right;
} }
if(rightmost->right==nullptr){ /* first time */ if(rightmost->right==nullptr){ /* visiting the right most node for the first time */
std::cout << current->val << " "; std::cout << current->val << " ";
rightmost->right=current; rightmost->right=current;
current=current->left; current=current->left;
}else{ /* second time */ }else{ /* visiting the right most node for the second time */
rightmost->right=nullptr; rightmost->right=nullptr;
current=current->right; current=current->right;
} }

View File

@@ -10,26 +10,26 @@ public:
}; };
void inorderTraversal(TreeNode* root) { void inorderTraversal(TreeNode* root) {
TreeNode *current=root; TreeNode *current=root;
TreeNode *rightmost; TreeNode *rightmost;
while(current!=NULL){ while(current!=NULL){
if(current->left!=NULL){ if(current->left!=NULL){
rightmost=current->left; rightmost=current->left;
while(rightmost->right!=NULL && rightmost->right!=current){ while(rightmost->right!=NULL && rightmost->right!=current){
rightmost=rightmost->right; rightmost=rightmost->right;
} }
if(rightmost->right==NULL){ /* first time */ if(rightmost->right==NULL){ /* first time */
rightmost->right=current; rightmost->right=current;
current=current->left; current=current->left;
}else{ /* second time */ }else{ /* second time */
std::cout << current->val << " ";
rightmost->right=NULL;
current=current->right;
}
}else{ /* nodes which do not have left child */
std::cout << current->val << " "; std::cout << current->val << " ";
rightmost->right=NULL;
current=current->right; current=current->right;
} }
}else{ /* nodes which do not have left child */
std::cout << current->val << " ";
current=current->right;
}
} }
return; return;
} }

View File

@@ -10,9 +10,9 @@ public:
}; };
void preorderTraversal(TreeNode* root) { void preorderTraversal(TreeNode* root) {
TreeNode *current=root; TreeNode *current=root;
TreeNode *rightmost; TreeNode *rightmost;
while(current != nullptr){ while(current != nullptr){
if(current->left != nullptr){ if(current->left != nullptr){
rightmost=current->left; rightmost=current->left;
while(rightmost->right!=nullptr && rightmost->right!=current){ while(rightmost->right!=nullptr && rightmost->right!=current){