二叉树

来源:互联网 发布:淘宝延长收货如何设置 编辑:程序博客网 时间:2024/06/05 15:59
题目:

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.

Subscribe to see which companies asked this question.

解析:這道题判断两个二叉树是否相等,我们可以用递归判断每一个节点,相当于对两个二叉树进行遍历,如果左右节点为空则结束,否则一直递归判断每一个结点是否相等,相等则执行下继续执行递归,否则返回false.

程序:

/**
 * 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 (p == q);
        return (p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right));
    }
};

0 0
原创粉丝点击