题解 | #树的子结构#

树的子结构

https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
//值得一写 两段递归
class Solution {
public:
	bool IsSameTree(TreeNode* pRoot1,TreeNode* pRoot2){
		if(pRoot2==nullptr){
			return true;
		}//如果此匹配树的点为空,那我们就判定原树

		if(pRoot1==nullptr){
			return false;
		}//这里做出了判断 如果pRoot1为空且pRoot2,说明模式树已经穷尽了,pRoot2还没穷尽
		if(pRoot1!=nullptr&&pRoot2!=nullptr&&pRoot1->val != pRoot2->val){
			return false;
		}
		bool lchild=true;
		bool rchild =true;
		lchild = IsSameTree(pRoot1->left,pRoot2->left);
		rchild = IsSameTree(pRoot1->right,pRoot2->right);
		return lchild && rchild;

	}
    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {


		if (!pRoot1 || !pRoot2) {
			return false;
		}

		if(IsSameTree(pRoot1, pRoot2))
		return true;
		if (HasSubtree(pRoot1->left,pRoot2)) {
			return true;
		}
		if (HasSubtree(pRoot1->right,pRoot2)) {
			return true;
		}
		return false;
    }
};

全部评论

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
就只能3个月,但是要求长期全职实习
Swaying:你确实是能长期实习啊,但是你那时候有事也没啥办法嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务