前序遍历
void PreOrder(TreeNode* currentNode)
{
if(currentNode)
{
cout << currentNode -> val;
PostOrder(currentNode->left);
PostOrder(currentNode->right);
}
}
中序遍历
void InOrder(TreeNode* currentNode)
{
if(currentNode)
{
PostOrder(currentNode->left);
cout << currentNode -> val;
PostOrder(currentNode->right);
}
}
后序遍历
void PostOrder(TreeNode* currentNode)
{
if(currentNode)
{
PostOrder(currentNode->left);
PostOrder(currentNode->right);
cout << currentNode -> val;
}
}
层序遍历
void LevalOrder(TreeNode* root, queue<TreeNode*> q)
{
TreeNode* currentNode = root;
cout << currentNode -> val;
while(currentNode)
{
if(currentNode->left){
q.push(currentNode->left);
}
if(currentNode->right){
q.push(currentNode->right);
}
if(q.empty()) return;
currentNode=q.front();
q.pop();
}
}