100. Same Tree
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
题解: 题意是判断两个二叉树是否相等,题目也很简单,解法也很普遍,就是判断节点是否相等,左子树与右子树;但是对于理解递归是很好的习题,而且,可以有很多演变题型;
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(p == NULL || q == NULL) return p == q;
return (p->val == q->val)&&isSameTree( p->left, q->left)&&isSameTree(p->right,q->right);
}
};
这基本是最优解也是标准解了。
101. Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
题解:题意是判断一个树是否是对称树,其实这道题可以是上面问题的变形,因为可以转化为两个子树是否关于中心轴相等的问题;其实也是一样,只是判断的条件从 right == right 变成了 left == right的改变;