本文主要是介绍LeetCode(25)-symmetric tree,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
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
思路:
- 首先这是一个求关于中心成对称二叉树的题目
- 二叉树的思路就是找到一个递归的突破口
- 首先判断left和right节点的关系来判断,以及(left.left,right.right)以及(left.right,right.left)的关系
代码:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
public class Solution {public boolean isSymmetric(TreeNode root) {if(root == null){return true;}else{return isEqual(root.left,root.right); }}public boolean isEqual(TreeNode left,TreeNode right){if(left == null){return right == null;}if(right == null){return left == null;}if(left.val != right.val){return false;}if(!isEqual(left.left,right.right)){return false;}if(!isEqual(left.right,right.left)){return false;}return true;}
}
这篇关于LeetCode(25)-symmetric tree的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!