如何查找完全二叉树最后一层的最右边的结点
题目:
如何查找完全二叉树最后一层的最右边的结点。
解决方案:
需要分两种情况考虑。
(1)如果完全二叉树是用数组表示的,则直接取数组的最后一个元素。
(2)如果完全二叉树是用指针表示的:
可以如下解决:
a. 从根节点开始,如果右子树存在,则每次先遍历右子树,如果右子树不存在,则访问左子树;
b. 如果右子树是叶子节点(即当前节点没有孩子节点),则该节点即所求节点;
如果右子树不存在,而左子树存在且左子树是叶子节点,则该节点为所求节点;
否则,按a继续查找。
以上算法为本人想法,如有问题或建议,欢迎讨论。
如何查找完全二叉树最后一层的最右边的结点相关推荐
- 【剑指offer】完全二叉树最后一层的最右节点(二叉树,二分查找)
题目 给定一棵完全二叉树,返回最后一层的最右边的节点. 思路 层次遍历,用一个last变量记录每次出队列的值,遍历结束之后last变量记录的就是所求节点.时间.空间复杂度都是O(N). 递归,求子树的 ...
- 找完全二叉树最底层最右边的结点
题目:用log(n)算法 找完全二叉树最底层最右边的结点 一颗二叉树的总结点其实是知道的,设为N. 如上图,总共有15个结点,那么找15号结点只需从根结点开始,向右--向右--向右. 假设只有14个点 ...
- Python入门篇-数据结构堆排序Heap Sort
Python入门篇-数据结构堆排序Heap Sort 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.堆Heap 堆是一个完全二叉树每个非叶子结点都要大于或者等于其左右孩子结点的 ...
- 说说自己找互联网工作的经验
本不想写了的,不过答应了很多人要写这一篇东西,还是不失信了. 文章主体内容: 通过这一段我找互联网实习的经历说说我个人对于准备互联网工作的见解,希望对有意互联网企业的同学有一点帮助.虽然是找实习的经历 ...
- 计算机Python二级公共基础部分
第一章 数据结构与算法 一.算法 1.1算法的概念 1.1.1.算法的概念 算法:是指解决方案准确而完整的描述 通俗的理解为:解决问题的方法和步骤(不仅仅是理论的) 两个要素:确定方法 确定步骤 比如 ...
- 二叉树的简介、特点及二叉树存储结构’
文章索引 一.前言 二. 二叉树的概念 1.二叉树的定义 2.几种特殊的二叉树 3. 二叉树的特点 三.二叉树的存储 1.链式存储 2.顺序存储 一.前言 本文主要介绍二叉树的一些定义和特性及存储 二 ...
- 理解 rb_tree
理解红黑树 树型结构一直是一种很重要的数据结构, 我们知道二叉查找树BST提供了一种快速查找, 插入的数据结构. 相比散列表来说BST占用空间更小,对于数据量较大和空间要求较高的场合, BST就显得大 ...
- LeetCode-Populating Next Right Pointers in Each Node-填充结点的右指针-二叉树递归
https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/ 构造一个按深度索引的数组,存储的当前遍历的结 ...
- 【精】沐浴智慧之光:研究查找算法
首先保证这一篇分析查找算法的文章,气质与大部分搜索引擎搜索到的文章不同,主要体现在代码上面,会更加高级,会结合到很多之前研究过的内容,例如设计模式,泛型等.这也与我的上一篇面向程序员编程--精研排序算 ...
最新文章
- 认识python(了解)
- PHP将XML转成数组
- python telnetlib详解 执行循环命令_Python的Telnetlib read_until'#'或'>',多发串的决心?...
- 可以输入值的下拉框(select和input的组合使用)
- 我的嵌入式开发之路(.Net Micro Framework)
- springMVC 解决硬编码问题
- 使用CleanMyMac的空间透镜功快速决策清理垃圾
- 如何做好一个技术 TL
- java创建集合有的不用泛型_Java如何创建泛型集合?
- 谷歌浏览器插件(jsonview)的下载与安装
- phpstudy打开浏览php页面发现显示源码解决方法
- kvm几种快照的创建与删除
- php和mysql关于ip段查询
- scrapy 爬取煎蛋网图片
- 第四次工业革命与龙的故事
- 苹果手机用stream获取wskey
- 每日一问-ChapGPT-20230405-中医基础-五运六气三阴三阳
- 普罗米修斯prometheus的安装与监控linux
- 当谈论工程师文化时我们在谈些什么
- 刀剑封魔录多功能修改器 v1.2使用教程