博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google 面试题 | 找二叉树最底层最左边的节点
阅读量:6824 次
发布时间:2019-06-26

本文共 530 字,大约阅读时间需要 1 分钟。

专栏 | 九章算法

网址 | http://www.jiuzhang.com

题目描述

给一棵二叉树,求出该二叉树最底层最左边的节点。

样例:

默认标题_自定义px_2018.01.31.png

算法分析

这题有2个做法,一是宽度优先搜索,用每层的第一个节点来更新答案。二是深度优先搜索,当遇到一个节点的深度大于目前维护的最大深度时用这个节点来更新答案。

  1. 使用宽度优先搜索bfs,用每层的第一个节点更新Ans。时间复杂度O(n)。

  2. 使用深度优先搜索dfs,当我们第一次访问一个深度为depth的节点x(之前只访问过深度小于depth的节点)时,x一定是depth深度的最左节点,用这个节点更新Ans。即我们维护一个最大深度,当遍历到一个点的深度大于最大深度时,用这个节点来更新答案,并更新最大深度即可。时间复杂度O(n)。

参考程序

面试官角度分析

这道题是一道简单难度题,考点是基础数据结构二叉树和在二叉树中的搜索,用bfs和dfs均可。给出正确算法即可达到hire。lintcode相关问题

QQ截图20180131175409.png

欢迎关注我的微信公众号:九章算法(ninechapter)。
精英程序员交流社区,定期发布面试题、面试技巧、求职信息等

转载地址:http://yorzl.baihongyu.com/

你可能感兴趣的文章
ocs的部署与应用(一)
查看>>
Python黑客编程之信息收集
查看>>
Django+ PowerShell 管理AD系统
查看>>
leopard ich7 alc 888 driver
查看>>
开始学习Docker啦--容器理论知识(一)
查看>>
流数据库 概率计算概念 - PipelineDB-Probabilistic Data Structures & Algorithms
查看>>
Java注解不完全总结
查看>>
解决“此电脑上没有安装True Speech声音解码器”的方法
查看>>
Win08R2变脸Win7第一招配置Owner信息
查看>>
远程桌面连接 详细图解
查看>>
Linux下查看文件和文件夹大小
查看>>
redis总结
查看>>
CsGL着色的三角形
查看>>
后端码农谈前端(CSS篇)第七课:定位与浮动
查看>>
springboot(十八):使用Spring Boot集成FastDFS
查看>>
何勉:第一性原理和精益敏捷的规模化实施
查看>>
HDFS 文件格式——SequenceFile RCFile
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
精致的JS提示
查看>>
Visual Studio.Net 2005中用SqlDataSource处理数据库特殊数据类型
查看>>