Leetcode 算法习题 第六周

来源:互联网 发布:五金进销存软件 编辑:程序博客网 时间:2024/05/22 12:10

100. 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 value.

题目大意

给定两个二叉树,判断它们是否完全相同(构造相同,数值相同)

我的解答

/** * 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)&&(q)){//如果两个节点都非空            if(p->val == q->val){//判断是否值相等                return isSameTree(p->left,q->left)&& isSameTree(p->right,q->right);//相等时则进行递归判断左子树和右子树,类比前序遍历            }            else return false;        }        else{            return p==q; //若根节点有空,则判断两个根节点值是否相同即可        }    }};