Same Tree

来源:互联网 发布:北大青鸟 液晶层显编程 编辑:程序博客网 时间:2024/05/17 01:35

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.


traversal two tree at the same time, decide by cases: both exist, both not exist, one exist. Preorder should be the best


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


0 0
原创粉丝点击