1. 程式人生 > >Leetcode 101. 對稱二叉樹

Leetcode 101. 對稱二叉樹

對稱二叉樹

題目描述: 給定一個二叉樹,檢查它是否是映象對稱的。 在這裡插入圖片描述

題目求解:本題與上一題“相同的樹”本質上是相同的,都是通過遞迴深度搜索來比較元素,只不過上一題是比較兩個樹相同位置的元素,此題是要比較一棵樹上的映象位置的元素。 程式碼如下:

/**
 * Definition for a binary tree node.
 * 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 == NULL) return true; return help(root->left, root->right); } bool help(TreeNode* root1, TreeNode* root2){ if((root1 == NULL) && (root2 == NULL)) return true
; if((root1 == NULL) || (root2 == NULL)) return false; if(root1->val != root2->val) return false; else return help(root1->left, root2->right) && help(root1->right, root2->left); } };