Leetcode 100. 相同的树
1.题目描述 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 / \ 2 2 [1,2], [1,null,2] 输出: false 示例 3: 输入: 1 1 / \ / \ 2 1 1 2 [1,2,1], [1,1,2] 输出: false 2.解法一:递归 class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { //先序遍历-递归 if((p==NULL && q) || (p && q==NULL)) return false; if(p && q && p->val!= q->val) return false; //两颗子树同时为真才真 if(p && q) return isSameTree(p->left,q->left) && isSameTree(p->right,q->right); return true; } }; 3.解法二:非递归--栈(先序遍历) 3.1 使用2个栈 我的粗糙代码 /** * Definition for a binary tree