Leetcode 101、对称二叉树

递归
判断一棵树是否是对称二叉树,只需要根节点下的两个子树是否对称。对称的意思是:左孩子的右节点 = 右孩子的左节点;左孩子的左节点 = 右孩子的右节点。
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null || (root.left == null && root.right == null)) return true;
return is(root.left, root.right);
}
public boolean is(TreeNode p, TreeNode q) {
if(p == null &&q == null) return true;
if(p == null || q == null ||p.val != q.val) return false;
boolean one = is(p.right, q.left);
boolean two = is(p.left, q.right);
return p.val == q.val && one && two;
}
}
本文解析了如何通过递归实现LeetCode题目101,判断给定的二叉树是否对称。讲解了`isSymmetric`方法的逻辑,重点在于`is`辅助函数的使用,以及如何通过比较左右子树来确定对称性。适合理解二叉树遍历和递归的读者。
673

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



