Loading...

递归-对称的二叉树

在这里插入图片描述 在这里插入图片描述

求解代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
	boolean recursion(TreeNode root1, TreeNode root2){
		if(root1==null&&root2==null){
			return true;
		}

		if(root1==null||root2==null||root1.val!=root2.val){
			return false;
		}

		return recursion(root1.left, root2.right)&&recursion(root1.right, root2.left);
	}
	public boolean isSymmetrical (TreeNode pRoot) {
        return recursion(pRoot, pRoot);
    }

这里说明一下为什么要调用recursion(pRoot, pRoot);把根节点传两次:

本质上就是把判断一棵树是否对称的问题转化为判断两棵树是否互为镜像的问题。

第一颗树的遍历规则是:正常的根➡️左➡️右;

第二棵树的遍历规则是:镜像的根➡️右➡️左;

只要这两个遍历结果完全匹配,那么原树就是对称的。

最后更新于 2026-04-05 17:35:33
Code Road Record