首页 > 代码库 > Same Tree 比较两个二叉树是否完全相同

Same Tree 比较两个二叉树是否完全相同

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.

给定两个二叉树,判断是否完全相同。

若两个二叉树完全相同,则每个节点的左子树和右子树必然都相同。

可以采用递归方式,从根节点开始:

 1 /** 2  * Definition for binary tree 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     bool isSameTree(TreeNode *p, TreeNode *q) {13         if(p == NULL && q == NULL)14             return true;15         else if(p == NULL || q == NULL)16             return false;17         18         if(p->val != q->val)19             return false;20         21         bool left = isSameTree(p->left,q->left);22         bool right = isSameTree(p->right,q->right);23         24         return left && right;25     }26 };

 

Same Tree 比较两个二叉树是否完全相同