当前位置: 首页 > news >正文

Day123 | 灵神 | 二叉树 | 找树左下角的值

Day123 | 灵神 | 二叉树 | 找树左下角的值

513.找树左下角的值

513. 找树左下角的值 - 力扣(LeetCode)

思路:

初学者可以看灵神视频二叉树的层序遍历【基础算法精讲 13】_哔哩哔哩_bilibili

我的思路就是在每层的循环前加个判断,把res更新队头元素,队头肯定是最左边的

灵神思路是先入队右孩子再入队左孩子,这样最后一个出队的肯定是最左边的

完整代码:

笔者思路:

class Solution {
public:int findBottomLeftValue(TreeNode* root) {queue<TreeNode *> q;int res=0;if(root==nullptr)return res;q.push(root);while(!q.empty()){int size=q.size();vector<int> path;for(int i=size;i>0;i--){TreeNode *t=q.front();q.pop();if(i==size)res=t->val;if(t->left)q.push(t->left);if(t->right)q.push(t->right);}}return res;}
};

灵神代码:

class Solution {
public:int findBottomLeftValue(TreeNode *root) {TreeNode *node;queue<TreeNode *> q;q.push(root);while (!q.empty()) {node = q.front(); q.pop();if (node->right) q.push(node->right);if (node->left)  q.push(node->left);}return node->val;}
};

递归写法:

class Solution {
public:int res;int curdepth=0;void tra(TreeNode *t,int depth){if(t->left==nullptr&&t->right==nullptr){if(depth>curdepth){res=t->val;curdepth=depth;}return;}if(t->left)tra(t->left,depth+1);if(t->right)tra(t->right,depth+1);}int findBottomLeftValue(TreeNode* root) {tra(root,1);return res;}
};

相关文章:

  • 【python】纤维宽度分布分析与可视化
  • Node.js Express 项目现代化打包部署全指南
  • LAN(局域网)和WAN(广域网)
  • osgEarth中视角由跟随模式切换到漫游模式后没有鼠标拖拽功能问题分析及解决方法
  • 【VSCode】在远程服务器Linux 系统 实现 Anaconda 安装与下载
  • jenkins使用Send build artifacts over SSH发布jar包目录配置
  • AUTOSAR 运行时环境 (RTE)
  • CMake 跨平台构建系统详解
  • C++(26): 标准库 <iterator>
  • 基于python的机器学习(八)—— 评估算法(一)
  • 策略的组合与叠加多策略联合交易
  • 前端面经-nginx/docker
  • RTMP协议解析【三】
  • Linux服务器SOS Report完全指南:收集方法、作用解析与最佳实践
  • WPF···
  • 哥德巴赫猜想
  • 本特利内华达125768-01 RIM i/o模块规范
  • 8.2 线性变换的矩阵
  • QT的自定义控件
  • UI自动化测试框架:PO模式+数据驱动
  • 始祖鸟母公司一季度净利大增超25倍:中国营收增超四成,从容应对关税影响
  • 嘴巴总是发干,喝水也不管用?小心是这几种疾病的警报
  • 中英举行人工智能对话
  • 墨西哥城市长私人秘书及顾问遇袭身亡
  • 阳朔兴坪镇:在建乾元桥“垮塌”是谣言,系降雨导致工程挡土墙倾斜
  • 央行行长潘功胜主持召开金融支持实体经济座谈会