Leetcode (5) Same Tree

来源:互联网 发布:视频录制软件 编辑:程序博客网 时间:2024/06/06 00:08

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.

简而言之,判断两棵二叉树是否相等,这里可以通过递归去判断,题目比较简单明了直接上代码吧。需要注意的是在判断左子树不相等的时候就可以直接return false了,而无需等左右子树都遍历完再返回结果。这样可以节省时间。运行时间为3 ms.

/** * 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;        if (p->val != q->val)            return false;        else        {            if (!isSameTree(p->left, q->left))                return false;            if (!isSameTree(p->right, q->right))                return false;        }        return true;    }};
0 0
原创粉丝点击