[LeetCode] Same Tree

来源:互联网 发布:网络用语古是什么意思 编辑:程序博客网 时间:2024/06/05 22:43

这题是要求判断给定的两个二叉树是否相等,二叉树的很多问题都可以用递归解决,相似的问题有求二叉树的深度、反转二叉树等。掌握了递归的思想后,这样的题目其实很简单。当然递归只是解决方案之一,这题还可以用深度遍历的方式解决,这里先给出递归的解法,第二遍刷leetcode时会用另一种方式解决这个问题。

/** * 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 || q == NULL)            return false;                if(p->val != q->val)            return false;                bool leftSame = isSameTree(p->left, q->left);        bool rightSame = isSameTree(p->right, q->right);                return leftSame && rightSame;            }};


0 0