询问一棵二叉树是否是沿中线镜像对称的。
用r1,r2表示当前对应的两个节点,如果val相等按相反的方向继续判定即可。
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 bool solve(TreeNode* root1,TreeNode* root2){ 13 if(root1==NULL && root2==NULL){ 14 return true; 15 }else if(root1==NULL || root2==NULL)return false; 16 else{ 17 if(root1->val==root2->val){ 18 return solve(root1->left,root2->right)&&solve(root1->right,root2->left); 19 }else{ 20 return false; 21 } 22 } 23 } 24 bool isSymmetric(TreeNode* root) { 25 TreeNode* root1=root,*root2=root; 26 return solve(root1,root2); 27 } 28 };