劍指offer :使用C++實現二叉樹的鏡像。

題目描述:

操作給定的二叉樹,將其變換爲源二叉樹的鏡像。

/*
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) return; //異常輸入判斷
         TreeNode* temp =pRoot->left;  //交換左右子樹
         pRoot->left = pRoot->right;
         pRoot->right = temp;
        if(pRoot->left!=nullptr)//交換左右子樹的左右子樹
            Mirror(pRoot->left);
        
        if(pRoot->right!=nullptr)
            Mirror(pRoot->right);
        
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章