数据结构——二叉树相关习题3

1.求另一棵树的子树

题目

前序遍历一样,形状不一定一样。

子树:以任何一个节点做根都可以看做是根子树。

也就是说需要让subroot和每一个子树都比较相同的时候就一样。找出左边这棵树的所有子树

思路:如何找到左边的所有子树

找到所有节点就是找到了所有子树------遍历这棵树。

代码实现:

复制代码
//求另一棵树的子树
#include<stdio.h>
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot)//题目中已经给出
{
	//首先判断是否为空,若是空则说明肯定不与子树相同
	if (root == NULL)
		return false;
	//当不为空的时候,需要判断根是否相等,并且以这个节点为根的两个子树也需要相等
	//数据结构------二叉树相关习题2/1中有如何判断两个树相同用isSameTree
	if ((root->val == subRoot->val) && isSameTree(root, subRroot)
	{
		return true;
	}
	//如果子树不同那就继续向下看以子树为根的时候是否相同,直接返回,如果有一个是相同的直接返回真,所以用或
	return  isSubtree(root->left, subRoot) || isSubtree(root->right, subRoot));//两个单词连接用大写;
}
相关推荐
闲人编程1 分钟前
聚合管道与复杂查询
开发语言·oracle·lua·match·查询·聚合·lookup
元亓亓亓1 分钟前
考研408--数据结构--day16--内部排序(下)
数据结构·408·内部排序
_Twink1e2 分钟前
[算法竞赛]四、树
数据结构·笔记·算法
Max_uuc4 分钟前
【架构心法】炸毁巨石阵:从单体巨兽到微内核 (Microkernel) 插件化架构的 Qt C++ 工业软件演进
c++·qt·架构
「QT(C++)开发工程师」6 分钟前
# [特殊字符] Day 1:Qt 信号槽原理深入 - 核心学习笔记
c++·qt
liliangcsdn1 小时前
探索和学习信任区域策略优化算法-TRPO
学习·算法
勇往直前plus2 小时前
从文件到屏幕:Python/java 字符编码、解码、文本处理的底层逻辑解析
java·开发语言·python
无限进步_2 小时前
面试题 02.04. 分割链表 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
zh_xuan2 小时前
kotlin Flow的用法
android·开发语言·kotlin·协程·flow
Mr YiRan6 小时前
C++面向对象继承与操作符重载
开发语言·c++·算法