0
点赞
收藏
分享

微信扫一扫

Leetcode101. 对称二叉树


题目传送: ​​https://leetcode.cn/problems/symmetric-tree/submissions/​​

运行效率

Leetcode101. 对称二叉树_leetcode

代码如下

public boolean isSymmetric(TreeNode root) {
// 原理: 判断二叉树是否是对称,需要从子节点开始比较,两个子节点的值必须相同,
// 并且左子节点的右子节点(如果有)必须等于右子节点的左子节点,左子节点的左子节点必须等于右子节点的右子节点

// 处理边界情况
if (root == null) {
return true;
}
//如果是叶子节点
if (root.left == null && root.right == null) {
return true;
}
return sysmmetricHelper(root.left,root.right);
}

public boolean sysmmetricHelper(TreeNode node, TreeNode node1) {
//如果两个节点都是null
if (node == null && node1 == null) {
return true;
}
//如果两个节点中有一个是null,另一个不是null
if (node == null || node1 == null) {
return false;
}
//如果两个节点都不为null, 但是两个节点的值不相等
if(node.val!=node1.val){
return false;
}
//原理: 判断二叉树是否是对称,需要从子节点开始比较,两个子节点的值必须相同,
// 并且左子节点的右子节点(如果有)必须等于右子节点的左子节点,左子节点的左子节点必须等于右子节点的右子节点
boolean a = sysmmetricHelper(node.left, node1.right);
boolean b = sysmmetricHelper(node.right, node1.left);
return a && b;
}


举报

相关推荐

0 条评论