二叉樹的鏡像
題目描述:
操作給定的二叉樹旋廷,將其變換為源二叉樹的鏡像。
解題思路:
跟之前的題目有些類似的地方:
看到樹的題目渠羞,大多都會用遞歸的思想來解決
- 如果想要將整個樹都做成鏡像契吉,就是要將所有結(jié)點的左右子樹調(diào)換位置
- 所以漠其,先調(diào)換第二層的結(jié)點贫悄,將左右結(jié)點互換
- 遞歸調(diào)用該函數(shù)瑞驱,將根結(jié)點的左右子結(jié)點(也就是剛剛被調(diào)換過的)作為新的“根”結(jié)點,調(diào)換其左右子結(jié)點
- 退出的條件是遇到葉子結(jié)點窄坦,即左右子結(jié)點均為NULL的結(jié)點
代碼
class Solution {
public:
void Mirror(TreeNode *pRoot) {
// 如果是空指針唤反,則直接返回
if (pRoot == NULL)
return;
// 如果只有根結(jié)點,沒有子結(jié)點鸭津,則也直接返回
if (pRoot->left == NULL && pRoot->right == NULL)
return;
// 設(shè)置一個空的指針彤侍,作為中轉(zhuǎn)站
TreeNode *temp;
temp = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = temp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
2018.10.10