代码随想录算法训练营第十五天| 226. 翻转二叉树 101. 对称二叉树

226. 翻转二叉树
https://leetcode.cn/problems/invert-binary-tree/description/

public TreeNode invertTree(TreeNode root) {
        invert(root);
        return root;
    }
    public void invert(TreeNode node){
        if (node == null) return;
        TreeNode p = node.left;
        node.left = node.right;
        node.right = p;
        invert(node.left);
        invert(node.right);
    }

101. 对称二叉树
https://leetcode.cn/problems/symmetric-tree/description/

public boolean isSymmetric(TreeNode root) {
        return compare(root.left,root.right);
    }
    public boolean compare(TreeNode left,TreeNode right){
        if (left == null && right != null) return false;
        if (left != null && right == null) return false;
        if (left == null && right == null) return true;
        if (left.val != right.val) return false;
        boolean out = compare(left.left, right.right);
        boolean in = compare(left.right, right.left);
        return out && in;
    }

总结:本题只能用后序,因为要用到左右节点的信息,先知道左右节点分别底下的对不对称,再比这两个节点对不对称。 要不就用队列迭代也行。

posted @   jeasonGo  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示