本题是确定一个树是不是左右对称的;分析:递归,保存左右两个节点,然后判断leftNode->left和rightNode->right,以及leftNode->right和rightNode->left。如此不断递归 代码: /** * 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) return true; return compRoot(root -> left, root -> right); } private: bool compRoot(TreeNode* lroot, TreeNode* rroot){ if(!lroot) return (NULL == rroot); if(NULL == rroot) return false; if(lroot -> val != rroot -> val) return false; return (compRoot(lroot -> left, rroot -> right) && compRoot(lroot -> right, rroot -> left)); } };