1.题目

2.解法
使用的是递归法
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
// 给的样例中,说如果pRoot为null,那么对称
return pRoot == null || isSym(pRoot.left, pRoot.right);
}
boolean isSym(TreeNode tmp1, TreeNode tmp2){
// 递归结束,两者皆为null
if(tmp1 == null && tmp2 == null){
return true;
}
// 两者都不为null,并且相等的情况下,开启下一次的递归
if(tmp1 != null && tmp2 != null && tmp1.val == tmp2.val){
return isSym(tmp1.left, tmp2.right) && isSym(tmp1.right, tmp2.left);
}else{
// 有一者为null,或者不相等,必然不对称
return false;
}
}
}
本文介绍了一种使用递归法判断二叉树是否对称的算法实现。通过对二叉树左右子节点进行对比,递归检查每个节点的对称性,最终确定整棵树是否对称。此方法简洁高效,适用于计算机科学与数据结构学习。
373

被折叠的 条评论
为什么被折叠?



