力扣226.翻转二叉树101.对称二叉树

力扣226.翻转二叉树101.对称二叉树

码农世界 2024-05-27 前端 74 次浏览 0个评论

解决二叉树的问题,经常要习惯从递归角度思考

左子树/右子树是否具备某属性、是否属于什么类型(和题目要求的判断当前树是否xxx一样);

对左/右子树进行什么操作(和题目要求的对当前树的操作一样)。

226.翻转二叉树

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return null;
        }
        TreeNode left = invertTree(root.left);
        TreeNode right = invertTree(root.right);
        root.left = right;
        root.right = left;
        return root;
    }
}

101.对称二叉树

class Solution {
    public boolean isSymmetric(TreeNode root) {
        //左节点和右节点是否相等
        //左节点的左子树和右节点的右子树是否对称
        //左节点的右子树和右节点的左子树是否对称
        return check(root.left,root.right);
    }
    public boolean check(TreeNode root1,TreeNode root2){
        if (root1==null && root2==null) return true;
        if (root1==null || root2==null) return false;
        if (root1.val!=root2.val) return false;
        return check(root1.left,root2.right) && check(root1.right,root2.left);
    }
}

转载请注明来自码农世界,本文标题:《力扣226.翻转二叉树101.对称二叉树》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,74人围观)参与讨论

还没有评论,来说两句吧...

Top