树的问题先想想递归准没错(
对称的二叉树
http://www.nowcoder.com/questionTerminal/ff05d44dfdb04e1d83bdbdab320efbcb
因为做过“按之字形顺序打印二叉树”和“把二叉树打印成多行”,开始想用每一层元素是否和逆序的该层元素相同来判断,但是有点麻烦。
于是写了简单的递归:
bool isSame(TreeNode* a,TreeNode *b) { if(!a && !b) return true; if(a && b) { //cout<<a->val<<" "<<b->val<<endl; return (a->val == b->val)&&isSame(a->left,b->right)&&isSame(a->right,b->left); } return false; } bool isSymmetrical(TreeNode* pRoot) { if(!pRoot) return true; return isSame(pRoot,pRoot); }