1. 程式人生 > >【LeetCode & 劍指offer刷題】樹題7:27 二叉樹的映象

【LeetCode & 劍指offer刷題】樹題7:27 二叉樹的映象

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...)

27 二叉樹的映象

 

題目描述

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

輸入描述:

二叉樹的映象定義:源二叉樹 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 ) return //如果當前結點為空或者子結點均為空就返回,不進行後續操作         if ( pRoot -> left == nullptr && pRoot -> right == nullptr ) return ;                 swap (pRoot->left, pRoot->right); //如果當前結點有子結點就交換左右子結點         if ( pRoot -> left ) Mirror ( pRoot -> left ); //如果左子樹非空,則映象化左子樹         if ( pRoot -> right ) Mirror ( pRoot -> right ); //如果右子樹非空,則映象化右子樹     } };