操作给定的二叉树,将其变换为源二叉树的镜像。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作给定的二叉树,将其变换为源二叉树的镜像。相关的知识,希望对你有一定的参考价值。
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
View Code
输入描述:
二叉树的镜像定义:源二叉树 8 / 6 10 / \\ / 5 7 9 11 镜像二叉树 8 / 10 6 / \\ / 11 9 7 5
class Solution { public: //栈的非递归 void Mirror(TreeNode *pRoot) { if (pRoot == NULL)return; stack<TreeNode*> st; TreeNode* p = NULL; st.push(pRoot); while (st.size()) { p = st.top(); st.pop(); swap(p->left, p->right); if (p->left)st.push(p->left); if (p->right)st.push(p->right); } } //队列的非递归 void Mirror(TreeNode *pRoot) { if (pRoot == NULL)return; queue<TreeNode*> qu; TreeNode* p = NULL; qu.push(pRoot); while (qu.size()) { p = qu.front(); qu.pop(); swap(p->left, p->right); if (p->left)qu.push(p->left); if (p->right)qu.push(p->right); } } //递归 void Mirror(TreeNode *pRoot) { if (pRoot == NULL)return; swap(pRoot->left, pRoot->right); Mirror(pRoot->left); Mirror(pRoot->right); } };
以上是关于操作给定的二叉树,将其变换为源二叉树的镜像。的主要内容,如果未能解决你的问题,请参考以下文章