[LeetCode] Symmetric Tree(对称镜像树的判别)
来源:互联网 发布:windows 怎么使用ssh 编辑:程序博客网 时间:2024/05/19 01:30
一、问题描述
给定一个二叉树,判断其是否是它自己的一个镜像,即左右节点的值是对称相等的。比如下面这一个二叉树就是镜像树。
1 / \ 2 2 / \ / \3 4 4 3
但是下面这一个就不是镜像树。
1 / \ 2 2 \ \ 3 3二、解决方法
递归判断:
1. 若根节点为空,则该树是镜像树;
2. 若根节点不为空,则判断其左右子树的情况:
1)若左右子树均为空,则可以判断该树是镜像树;
2)若左右子树其中一个为空,则该树不是镜像树;
3)若左右子树均不为空,则先判断左右节点的值是否对应相等。若不等,则该树不为镜像树;若相等,则递归判断左子树左节点和右子树右节点以及左子树右节点和右子树左节点各自是否是镜像树。其中任何一个不为镜像树,则可以判断出整个二叉树也不为镜像树。直到遍历完整个二叉树为止。
三、C++代码
/** * 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; if(!root->left&&!root->right) return true; else return isSymmetric(root->left,root->right); } bool isSymmetric(TreeNode *leftNode,TreeNode *rightNode) { if(!leftNode&&!rightNode) return true; else if((!leftNode&&rightNode)||(leftNode&&!rightNode)) return false; else return leftNode->val==rightNode->val&&isSymmetric(leftNode->left,rightNode->right)&&isSymmetric(leftNode->right,rightNode->left); }};
0 0
- [LeetCode] Symmetric Tree(对称镜像树的判别)
- Symmetric Tree 对称镜像树 @LeetCode
- leetcode Symmetric Tree对称树的判断
- leetcode 101. Symmetric(对称的) Tree
- leetcode-Symmetric Tree 对称树
- leetcode-Symmetric Tree 对称树
- leetcode-Symmetric Tree 对称树
- LeetCode-101-Symmetric Tree judge对称tree
- LeetCode(Symmetric Tree)判断二叉树是否是对称的
- LeetCode 101. Symmetric Tree(对称的树)
- 【leetcode 二叉树对称判断】Symmetric Tree
- Symmetric Tree[LeetCode]对称二叉树
- Leetcode Symmetric Tree 对称二叉树
- Leetcode#101. Symmetric Tree(对称树)
- Symmetric Tree 判断对称的树
- Symmetric Tree 判断树是不是对称的
- Symmetric Tree 对称树
- Leetcode-Symmetric Tree——判断二叉树是否对称
- 判断溢出
- Blog之旅
- MyEclipse8.6.1+spket1.6.23+extjs4.2.1
- linux启动后,默认有以下系统进程
- 大家好个妇科工具发
- [LeetCode] Symmetric Tree(对称镜像树的判别)
- Eclipse 配置 JAD
- 第17周项目 oj9876>>>>>>>>9>>>>>>>8>>>>>>>>7>>>>>6>>>>>>>>>9-6=3
- Strust2拦截器自定义拦截器实例--登录
- AFHTTPRequestOperationManager注意点
- CCommandLineInfo的作用
- Merge Sorted Array
- 六西格玛应用介绍
- 虚拟机下red hat enterprise linux6 网络连接