首页 > 代码库 > 操作给定的二叉树,将其变换为源二叉树的镜像。
操作给定的二叉树,将其变换为源二叉树的镜像。
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
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); }};
操作给定的二叉树,将其变换为源二叉树的镜像。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。