18二叉树的镜像
1 二叉树的镜像 2 //操作给定的二叉树,将其变换为源二叉树的镜像。 3 //二叉树的镜像定义:源二叉树 4 8 5 / \ 6 6 10 7 / \ / \ 8 5 7 9 11 9 镜像二叉树 10 8 11 / \ 12 10 6 13 / \ / \ 14 11 9 7 5 15 16 //思想:如果根节点有左右结点,则直接交换左右结点。然后进行递归即可。关于二叉树的问题,首先 17 // 要想到递归,从简单的条件考虑,然后再递归左右子树。 18 struct TreeNode 19 { 20 int val; 21 TreeNode* left; 22 TreeNode* right; 23 TreeNode(int x):val(x), left(NULL), right(NULL){} 24 }; 25 class Solution 26 { 27 public: 28 void Mirror(TreeNode* pRoot) 29 { 30 if (pRoot == NULL) 31 { 32 return; 33 } 34 if (pRoot->left == NULL && pRoot->right == NULL) 35 { 36 return; 37 } 38 TreeNode* pTemp = pRoot->left; 39 pRoot->left = pRoot->right; 40 pRoot->right = pTemp; 41 if (pRoot->left) 42 { 43 Mirror(pRoot->left); 44 } 45 if (pRoot->right) 46 { 47 Mirror(pRoot->right); 48 } 49 return ; 50 } 51 };
在代码的世界尽情的翱翔吧!

浙公网安备 33010602011771号