一、知识点:

遍历、递归、二叉树

二、文字分析:

递归的方法来遍历两个二叉树的节点,并进行比较。具体来说,对于每一对节点,我们首先判断它们的值是否相同。如果相同,我们继续递归地判断它们的左子树和右子树是否相同。如果不相同,或者有一个节点为 null 而另一个节点不为 null,则两个牛群的结构不相同。

三、编程语言:

java

四、正确代码:

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        // 如果两个节点都为空,则认为它们是相同的
        if (p == null && q == null) {
            return true;
        }

        // 如果只有一个节点为空,则认为它们不相同
        if (p == null || q == null) {
            return false;
        }

        // 判断当前节点的值是否相同,并递归地判断左子树和右子树是否相同
        if (p.val == q.val) {
            return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
        } else {
            return false;
        }
    }
}