742. Closest Leaf in a Binary Tree的思路
题目大意是,找到最临近给定节点的叶节点,例如
1/ \2 3/4/5/6
给定2的话,最近的是3,给定4的话,最近的是6。
思路:题目中,树的结构并不利于寻找答案,需要把树的结构转换成图,然后通过广度优先搜索,可以轻易的获取最近的叶节点。
代码:
class Solution {public:int findClosestLeaf(TreeNode* root, int k) {kv=k;for(int i=0;i<1010;i++){f[i]=false;v[i]=false;}helper(root);queue<int> q;q.push(k);int res=0;while(q.size()>0){int tk=q.front();if(f[tk] == true)return tk;q.pop();if( v[tk] == false){v[tk]=true;res++;int ns=n[tk].size();for(int i=0;i<ns;i++){int tki=n[tk][i];if(f[tki] == true)return tki;if(v[tki] == false){q.push(tki);}}}}return -1;}void helper(TreeNode* t){if(t == NULL)return;if(t->left == NULL && t->right == NULL){f[t->val]=true;return;}if(t->left !=NULL){n[t->left->val].push_back(t->val);n[t->val].push_back(t->left->val);helper(t->left);}if(t->right !=NULL){n[t->right->val].push_back(t->val);n[t->val].push_back(t->right->val);helper(t->right);}}private:vector<int> n[1010];bool f[1010];bool v[1010];int kv;
};
代码结构,是分两步,第一步通过helper函数,将树转化成无权邻域矩阵,第二步,在主函数里通过广度优先搜索,寻找最短路径。
742. Closest Leaf in a Binary Tree的思路相关推荐
- Leetcode 742. Closest Leaf in a Binary Tree
Leetcode 742. Closest Leaf in a Binary Tree Approach #1: Convert to Graph 把树转换为以k节点为中心的图,从k节点开始层序遍历, ...
- PAT甲级-二叉树的遍历-1102 Invert a Binary Tree解题思路
1102 Invert a Binary Tree (25 分) 思路 翻转二叉树 后序遍历翻转即可,由于给出每个结点的左右儿子,所以这里用到二叉树的静态写法更加方便 这里有个坑,bool数组初始化为 ...
- ZOJ 3965 Binary Tree Restoring
Binary Tree Restoring 思路: 递归 比较a序列和b序列中表示同一个子树的一段区间,不断递归 代码: #include<bits/stdc++.h> using nam ...
- 【Construct Binary Tree from Inorder and Postorder Traversal】cpp
题目: Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume ...
- LeetCode 272 Closest Binary Tree Traversal II 解题思路
原题网址:https://leetcode.com/problems... Given a non-empty binary search tree and a target value, find ...
- 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- 102. Binary Tree Level Order Traversal
题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...
- LeetCode: 111. Minimum Depth of Binary Tree
题目 Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bina ...
- LeetCode: 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- LeetCode: 104. Maximum Depth of Binary Tree
题目 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the l ...
最新文章
- ORA-12514 监听程序当前无法识别连接描述符中的服务
- 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.1. Linux与硬件的搭配)
- QString与LPCWSTR互转
- python求和函数1到100_Python定义函数实现累计求和操作
- Linux 本地密码正确无法登录,记一次无法正常本地登陆Linux服务器(确定密码正确)...
- 开源软件通识基础:第二周课程回顾与总结
- 捕获异常VS抛出异常
- C语言结构体使用与指针的理解
- bootstrap 悬浮固定_CST Tech Tips - 流式细胞术中如何固定和通透细胞?
- 百度大脑公开课!快速定制高精度计算机视觉模型
- 创建完maven工程之后,提示[FATAL_ERROR] Cannot start Maven: Project JDK is not specified. a href=''Configure...
- [Ext JS]5.8 Group Grid-分组网格
- Android 四种启动模式
- android图片选择器实现说明
- NullableTypes for .NET
- 评选最佳文本编辑器-UltraEdit From善用佳软
- python变量名包括_python中变量的命名以及使用
- Java JUI打字小游戏项目
- 如何编写ddos防御脚本
- Mac 调节鼠标移速
热门文章
- 漫谈 | 据说搞区块链的人都觉得自己是“上帝
- Flappy bird制作过程
- 利用INFOPATH2007VS2005开发MOSS工作流详解 --收藏
- Pytorch——momentum动量
- 2.1.1队列——雏形(初始版本)
- 用Scrapy框架爬取校花网所有校花图片
- CSS:纯CSS3全屏背景图片幻灯片轮播
- 微信开发工具更新后,跳转页面报错
- DaDa英语怎么样,给孩子报名哒哒英语上课好不好?
- 统计字符串中字符ch出现的次数c语言,C语言与汇编的嵌入式编程:统计字符串中各字符出现的次数...