通过递归判断对称二叉树java代码

    科技2022-08-24  104

    通过递归判断对称二叉树

    题目

    方法

    判断根节点是否为null,是的话就直接返回true

    构造一个判断两个结点是否对称的方法,参数(node1,node2)

    清楚递归结束的三种可能性: (1)两个结点都是null,返回true (2)其中一个结点是null. ,发挥false (3)两个值不相等,返回false

    需要判断node1.left?=node2.right, node1.right?=node2.left,因此递归调用对称方法,分别传入(node1.left,node2.right)和(node1.right,nnode2.left)

    最后返回判断

    代码

    /** * 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 Symmetric(root.left,root.right); } public boolean Symmetric(TreeNode node1,TreeNode node2){ if(node1==null&&node2==null) return true; if(node1==null&&node2!=null||node1!=null&&node2==null) return false; if(node1.val!=node2.val) return false; return Symmetric(node1.left,node2.right)&&Symmetric(node1.right,node2.left); } }
    Processed: 0.016, SQL: 9