当前位置首页 > 高中物理 > 教学视频

(连载)二叉树的应用场景

更新时间:2023-08-11 文章作者:佚名 信息来源:网络整理 阅读次数:

前言wAG物理好资源网(原物理ok网)

之前记录过二叉树的遍历方法。 这次记录一下二叉树的镜像树。 就我个人而言,我不喜欢太多的文字。wAG物理好资源网(原物理ok网)

1.什么是镜像树?wAG物理好资源网(原物理ok网)

镜树,简单的理解就是中间放一个全身镜,全身镜的内侧和外侧的关系是对称的。让我想起了平面镜成像wAG物理好资源网(原物理ok网)

镜像树无非就是A、B、C有树关系,头部的镜像就是它自己wAG物理好资源网(原物理ok网)

我简单解释一下:wAG物理好资源网(原物理ok网)

C节点:C是根节点,C的镜像节点就是C‘
B节点:C的左节点B = C'的右节点B‘
A节点:B的左节点A = B‘的右节点A’  且 B的右节点null = B’的左节点
wAG物理好资源网(原物理ok网)

2. 镜像树的应用场景wAG物理好资源网(原物理ok网)

目前大多在哪里遇到:刷题wAG物理好资源网(原物理ok网)

我还没有遇到过具体的应用场景,所以在这里留下记录,等以后遇到了再补充。wAG物理好资源网(原物理ok网)

3.如何确认这是一棵镜像树wAG物理好资源网(原物理ok网)

刚才提到应用场景是刷题。 这是李口原来的问题。 我不会发布问题的具体描述。 如果有需要,您可以点击下面的链接来进行操作。 基本上,这意味着给你一个树的头节点。 ,你这样填充,让这个技巧wAG物理好资源网(原物理ok网)

101.对称二叉树wAG物理好资源网(原物理ok网)

Sword指的是。 对称二叉树wAG物理好资源网(原物理ok网)

先别急着写代码,先考虑如何判断一个节点是否镜像(对称)。wAG物理好资源网(原物理ok网)

我怀里有两个孩子,右边的女儿和右边的女儿一样wAG物理好资源网(原物理ok网)

左头==右头wAG物理好资源网(原物理ok网)

假设我们有这样一个方法来判断一个节点是否是镜像平面镜成像规律图表,那么我们只要一层层递归就可以得到整棵树是否是镜像的技巧了?wAG物理好资源网(原物理ok网)

下面是写法:wAG物理好资源网(原物理ok网)

初始根节点,将自身与自身进行比较以确定边界条件:wAG物理好资源网(原物理ok网)

2.1 如果两个节点其中一个不为空,另一个为空,则直接返回false。wAG物理好资源网(原物理ok网)

2.2 如果两个节点都为空,则直接返回true。 当判断两个节点的值是否相同时,如果相同则递归进行。wAG物理好资源网(原物理ok网)

	public boolean isSymmetric(TreeNode root) {
        return isSameNode(root,root);
    }
	public static boolean isSameNode(TreeNode p, TreeNode q) {
		if (p == null ^ q == null) {
			return false;
		}
		if (p == null && q == null) {
			return true;
		}
		return p.val == q.val && isSameNode(p.left, q.right) && isSameNode(p.right, q.left);
	}
wAG物理好资源网(原物理ok网)

四、回顾二叉树的遍历方法wAG物理好资源网(原物理ok网)

之前写过二叉树的遍历方法:前序、中序、后序wAG物理好资源网(原物理ok网)

优先顺序:先左后右wAG物理好资源网(原物理ok网)

中间顺序:先左,后头,再右wAG物理好资源网(原物理ok网)

后续顺序:先左,后右平面镜成像规律图表,最后头wAG物理好资源网(原物理ok网)

后来写完复制代码后,提出了递归顺序:每个节点进入3次。wAG物理好资源网(原物理ok网)

第一个复制结果中,是预购的wAG物理好资源网(原物理ok网)

第二次复制的结果是中序的wAG物理好资源网(原物理ok网)

第三个副本的结果是后序wAG物理好资源网(原物理ok网)

再次手写递归序列代码:wAG物理好资源网(原物理ok网)

	public void ds(TreeNode head){
		//边界条件
		if(head==null){
			return;
		}
		//第一次进head节点
		System.out.println("我是先序:"+head.val);
		ds(head.left);
		//第二次进head节点
		System.out.println("我是中序:"+head.val);
		ds(head.right);
		//第三次进head节点
		System.out.println("我是后序:"+head.val);
	}
wAG物理好资源网(原物理ok网)

发表评论

统计代码放这里