面试题9二叉树的镜像
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void Mirror(TreeNode *pRoot) {//递归版 if(pRoot!=nullptr){ swap(pRoot->left,pRoot->right); Mirror(pRoot->left); Mirror(pRoot->right); /*void Mirror2(TreeNode *pRoot) {//迭代版 if (pRoot == NULL) return; stack<TreeNode*> stackNode; stackNode.push(pRoot); while (stackNode.size()) { TreeNode* tree = stackNode.top(); stackNode.pop(); if (tree->left != NULL || tree->right != NULL) { TreeNode *ptemp = tree->left; tree->left = tree->right; tree->right = ptemp; } if (tree->left) stackNode.push(tree->left); if (tree->right) stackNode.push(tree->right); } }*/ } } };