题目:求二元查找树的镜像(即交换左右子树),递归+迭代
分析:其实操作和前序二叉树类似。
void Mirror(TreeNode *root)//递归互换左右子树{ if(root == NULL) return ; TreeNode* p=root->leftChild; root->leftChild =root->rightChild; root->rightChild=p; //swap if(root->leftChild != NULL) Mirror(root->leftChild); if(root->rightChild != NULL) Mirror(root->rightChild);}void MirrorIteration(TreeNode *root)//迭代互换左右子树{ if(root == NULL) return ; stackstk; TreeNode* p; stk.push(root); while(!stk.empty()) { p=stk.top(); stk.pop(); //swap TreeNode* temp=p->leftChild; p->leftChild =p->rightChild; p->rightChild=temp; //push if(p->leftChild != NULL) stk.push(p->leftChild); if(p->rightChild != NULL) stk.push(p->rightChild); }}