• 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 values. 题目翻译:
给两棵树,写一个函数来判断这两棵树是否相同. 我们判定一棵树是否相同的条件为这两棵树的结构相同,并且每个节点的值相同. 解题思路:
这道题中规中矩,很简单,我们直接用DFS前序遍历这两棵树就可以了. 时间复杂度分析:
因为是DFS, 所以时间复杂度为O(n) 代码如下: 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. if(p->val == q->val) 18. { 19. bool left = isSameTree(p->left, q->left); 20. bool right = isSameTree(p->right,q->right); 21. return left&&right; 22. } 23. return false; 24. } 25. };