1. 程式人生 > >[劍指offer] 二叉樹的鏡像

[劍指offer] 二叉樹的鏡像

left sub bject pre roo 遍歷 變換 pro tmp

題目描述

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

輸入描述:

二叉樹的鏡像定義:源二叉樹 
    	    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 || !(pRoot->left) && !(pRoot->right)) return; TreeNode* tmp = pRoot->left; pRoot->left = pRoot->right; pRoot->right = tmp; Mirror(pRoot->left); Mirror(pRoot
->right); } };

[劍指offer] 二叉樹的鏡像