Leetcode: symmetric-tree
来源:互联网 发布:南京云宝网络怎么样 编辑:程序博客网 时间:2024/05/28 15:06
题目:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
分析:
判断一棵树是否是对称的,需要判断这棵树的子树是否为对称的,用递归去解决比较容易。具体就是写一个check函数,这个函数传入两棵树,返回这两棵树是否对称,子函数中的判断条件是如果两棵树都为空,那么对称;如果一棵树为空,另一颗树不为空,那么不对称;当都不为空时,递归判断根节点是否相同,第一颗树的左孩子和第二棵树的右孩子是否相同,第一颗树的右孩子和第二棵树的左孩子是否相同。当所有条件都满足,那么这棵树就是对称的。
具体代码如下:
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public boolean isSymmetric(TreeNode root) { return check(root, root); } public boolean check(TreeNode left, TreeNode right){ if (left == null && right == null) return true; if ((left == null && right != null) || (right == null && left != null)) return false; return (left.val == right.val) && check(left.left, right.right) && check(left.right, right.left); } }
阅读全文
0 0
- Leetcode - Tree - Symmetric Tree
- Leetcode - Tree - Symmetric Tree
- LeetCode[Tree]: Symmetric Tree
- [leetcode][tree] Symmetric Tree
- LeetCode: Symmetric Tree
- [Leetcode] Symmetric Tree
- LeetCode : Symmetric Tree
- leetcode 13:symmetric tree
- [LeetCode] Symmetric Tree - Recursively
- [LeetCode] Symmetric Tree - Iteratively
- [LeetCode] Symmetric Tree
- [LeetCode]Symmetric Tree
- Leetcode:Symmetric Tree
- [Leetcode]Symmetric Tree
- Leetcode: Symmetric Tree
- [leetcode]Symmetric Tree
- LeetCode-Symmetric Tree
- [leetcode] Symmetric Tree
- 数字化企业的智慧企业架构框架——使能企业全面向数字化转型
- UnityAI行为-----群组行为之群集动画
- 到了Vue2.x有哪些变化?—— 组件通信
- 一键搭建本地yum源
- iframe中使用My97DatePicker WdatePicker()无法弹框
- Leetcode: symmetric-tree
- Java多线程系列——原子类的实现(CAS算法)
- [Leetcode] 155. Min Stack 解题报告
- foreach后通过checkbox获取值
- ${pageContext.request.contextPath} JSP取得绝对路径
- Vue2版Cnode社区webapp
- 那些年我们遇到的坑(2)-FeignClient
- 题目1064:反序数
- Vue2.0进阶组件篇4 突如其来(时间倒计时组件)