题目
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
翻译
给定两个二叉树,写一个函数来检查它们是否相等。
如果两个二叉树在结构上相同,并且节点具有相同的值,则它们被认为是相等的。
分析
通过遍历判断二叉树是否相等。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool isSameTree(TreeNode *p, TreeNode *q) { if(!p && !q) return true; else if(!p && q) return false; else if(p && !q) return false; else { if(p->val != q->val) return false; else return isSameTree(p->left, q->left) && isSameTree(p->right, q->right); } } };