LeetCode 101. Symmetric Tree(二叉树)

    xiaoxiao2025-01-17  15

    题目来源:https://leetcode.com/problems/symmetric-tree/

    问题描述

    101. Symmetric Tree

    Easy

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

    For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

        1

       / \

      2   2

     / \ / \

    3  4 4  3

     

    But the following [1,2,2,null,3,null,3] is not:

        1

       / \

      2   2

       \   \

       3    3

     

    Note:Bonus points if you could solve it both recursively and iteratively.

    ------------------------------------------------------------

    题意

    判断二叉树是否对称。

    ------------------------------------------------------------

    思路

    递归方法treeSymmetric输入两棵子树的根节点r1, r2,递归地判断两棵子树是否对称。

    ------------------------------------------------------------

    代码

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public boolean isSymmetric(TreeNode root) { if (root == null) { return true; } return treeSymmetric(root.left, root.right); } private boolean treeSymmetric(TreeNode r1, TreeNode r2) { if (r1 == null && r2 == null) { return true; } if ((r1 == null && r2 != null) || (r1 != null && r2 == null)) { return false; } if (r1.val != r2.val) { return false; } if (treeSymmetric(r1.left, r2.right) && treeSymmetric(r1.right, r2.left)) { return true; } else { return false; } } }

     

    最新回复(0)