(树)判断一颗二叉树是否为镜像对称
2017-01-22 14:32
204 查看
原题:https://www.nowcoder.com/practice/1b0b7f371eae4204bc4a7570c84c2de1?tpId=46&tqId=29077&tPage=3&rp=3&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking
思路:
//判断一个数是否为镜像对称:先判断根,在判断左右子树。如果左右子树都为空那就是,如果左右子树不是同时为空那就不是
//当左右子树都存在的时候,判断他们的值是否相等,如果相等那么久递归的对他们的字节点判断(左边的左=右边的右;左边的右==右边的左)
代码
思路:
//判断一个数是否为镜像对称:先判断根,在判断左右子树。如果左右子树都为空那就是,如果左右子树不是同时为空那就不是
//当左右子树都存在的时候,判断他们的值是否相等,如果相等那么久递归的对他们的字节点判断(左边的左=右边的右;左边的右==右边的左)
代码
/** * Definition for binary tree * 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 Symmetric(root->left, root->right); } bool Symmetric(TreeNode *left, TreeNode *right){ if (!left && !right) return true; if (!left || !right) return false; if (left->val == right->val){ return (Symmetric(left->left, right->right) && Symmetric(right->left, left->right)); } return false; } };
相关文章推荐
- 【二叉树11】判断一颗二叉树本身是否为镜像
- 【LeetCode题目记录-11】判断二叉树是否是镜像的(对称的)
- 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
- day12之判断一棵二叉树是否是平衡二叉树+求一颗二叉树的镜像+判断一个数在二维数组中是否存在
- 判断二叉树是否为镜像对称
- 每日一题之判断一棵二叉树是否是平衡二叉树以及求一颗二叉树的镜像
- 判断一颗二叉树是否对称
- 判断一棵二叉树是否是平衡二叉树并求一颗二叉树的镜像——题集十
- 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
- 14.剑指offer-判断一颗二叉树是否对称
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- -判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一颗二叉树是否为对称二叉树
- 二叉树--判断一棵二叉树是否是平衡二叉树&&求一颗二叉树的镜像
- 判断一颗二叉树是否对称
- 产生树的镜像,判断一棵树是否为对称二叉树
- 【遍历二叉树】09判断二叉树是否关于自己镜像对称【Symmetric Tree】
- 【二叉树】判断一棵二叉树是否是平衡二叉树/求一棵二叉树的镜像/对称的二叉树