Same Tree问题及解法
2017-03-15 13:41
204 查看
问题描述:
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.左子树是否相同
3.右子树是否相同
用以上三个条件进行DFS遍历即可求的答案。
过程详见代码:
/**
* Definition for a binary tree node.
* 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 == NULL && q == NULL) return true;
else if(p == NULL) return false;
else if(q == NULL) return false;
if(p->val == q->val)
{
return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}
else return false;
}
};
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.左子树是否相同
3.右子树是否相同
用以上三个条件进行DFS遍历即可求的答案。
过程详见代码:
/**
* Definition for a binary tree node.
* 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 == NULL && q == NULL) return true;
else if(p == NULL) return false;
else if(q == NULL) return false;
if(p->val == q->val)
{
return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}
else return false;
}
};
相关文章推荐
- LeetCode Same Tree 简单,简洁的递归解法
- Maximum Depth of Binary Tree问题及解法
- Binary Tree Zigzag Level Order Traversal问题及解法
- Binary Tree Preorder Traversal问题及解法
- Flatten Binary Tree to Linked List问题及解法
- Leetcode:Same Tree 菜鸟解法
- Maximum Binary Tree问题及解法
- Validate Binary Search Tree问题及解法
- Binary Tree Inorder Traversal问题及解法
- Binary Tree Right Side View问题及解法
- Binary Tree Level Order Traversal II问题及解法
- Binary Tree Paths问题及解法
- Invert Binary Tree问题及解法
- Binary Tree Level Order Traversal问题及解法
- Binary Tree Tilt问题及解法
- ※ Leetcode - Segment Tree - 307. Range Sum Query - Mutable (线段树+树状数组两种解法以及模板的常见问题解析)
- Minimum Depth of Binary Tree问题及解法 4000
- Find Mode in Binary Search Tree问题及解法
- Construct Binary Tree from Inorder and Postorder Traversal问题及解法
- Convert BST to Greater Tree问题及解法