(樹)判斷一顆二叉樹是否為鏡像對稱


  • 原題:https://www.nowcoder.com/practice/1b0b7f371eae4204bc4a7570c84c2de1?tpId=46&tqId=29077&tPage=3&rp=3&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking

  • 思路:
    • //判斷一個數是否為鏡像對稱:先判斷根,在判斷左右子樹。如果左右子樹都為空那就是,如果左右子樹不是同時為空那就不是
          //當左右子樹都存在的時候,判斷他們的值是否相等,如果相等那么久遞歸的對他們的字節點判斷(左邊的左=右邊的右;左邊的右==右邊的左)

  • 代碼
    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        //判斷一個數是否為鏡像對稱:先判斷根,在判斷左右子樹。如果左右子樹都為空那就是,如果左右子樹不是同時為空那就不是
        //當左右子樹都存在的時候,判斷他們的值是否相等,如果相等那么久遞歸的對他們的字節點判斷(左邊的左=右邊的右;左邊的右==右邊的左)
        bool isSymmetric(TreeNode *root) {
            if (!root)
                return true;
            return Symmetric(root->left, root->right);
        }
        bool Symmetric(TreeNode *left, TreeNode *right){
            if (!left && !right)
                return true;
            if (!left || !right)
                return false;
            if (left->val == right->val){
                return (Symmetric(left->left, right->right) && Symmetric(right->left, left->right));
            }
            return false;
        }
    };

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM