ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

算法进阶之路(七):二叉树面试真题解析及解题技巧总结

2022-01-20 15:58:00  阅读:136  来源: 互联网

标签:进阶 递归 真题 代码 打印 后继 二叉树 节点


一、二叉树的打印

在这里插入图片描述
解题思路:使用递归思路,从根节点依次打印左孩子和右孩子,直至最后一层即可,关键是设计出树的结构,我们先看打印效果:
在这里插入图片描述
打印效果相当于一颗平躺的二叉树,顺时针旋转90度,即是一颗我们常见的二叉树,头节点用“H”包裹,左子树用“^”包裹,右子树用“v”包裹。我们固定每个节点的长度len,这里设置的17,然后不足的用空格分别在值的前后均匀补充。
代码如下
在这里插入图片描述
在这里插入图片描述

二、打印二叉树的后继节点

在这里插入图片描述
解题思路:1.后继节点指的是在二叉树中序遍历中,该节点后面的节点。中序遍历,当前节点是x的最右边节点,则x是当前节点的后继节点。
2.如果有右子树,找到右子树的最左侧节点,即是当前节点的后继节点
如果无右子树,找到父节点,判断当前节点是否是父节点的左孩子,如果是的话,当前节点的父节点即是当前节点的后继节点;如果不是的话,继续向上找,一直到满足条件即可(即当前节点是父节点的左孩子)
代码如下
在这里插入图片描述
在这里插入图片描述

三、经典纸张对折

在这里插入图片描述
解题思路:自己按照要求对折三次后,发现呈二叉树分布,如图:
在这里插入图片描述
使用二叉树的递归套路即可轻易解决。
代码如下
在这里插入图片描述

四、二叉树的递归套路总结

在这里插入图片描述
在这里插入图片描述

五、递归套路深度实践

题目一

在这里插入图片描述

平衡性:左树平衡,右树平衡;左边的子树和右边的子树高度差不超过1
按照如上递归套路,代码如下:
代码如下
先定义递归的结构体:
在这里插入图片描述
递归判断是否平衡树:
在这里插入图片描述

题目二:

在这里插入图片描述
搜索树:整颗树的节点都不重复,且左边的节点都比右边的节点小;任何一颗子树都是如此。
解题思路:
在这里插入图片描述
代码如下
封装递归的结构体:
在这里插入图片描述
递归代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

标签:进阶,递归,真题,代码,打印,后继,二叉树,节点
来源: https://blog.csdn.net/wwwvipp/article/details/122595705

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有