摘要: 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被 阅读全文
posted @ 2019-07-11 22:56 YF-1994 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则 阅读全文
posted @ 2019-07-11 22:43 YF-1994 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]算法:暴搜(dfs)。我们搜索出所有的结果并进行保存即可。 阅读全文
posted @ 2019-07-11 18:57 YF-1994 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: tr 阅读全文
posted @ 2019-07-11 18:55 YF-1994 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。算法:我们只需要考虑n!中有多少个5即可。 阅读全文
posted @ 2019-07-11 18:48 YF-1994 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化 阅读全文
posted @ 2019-07-11 14:23 YF-1994 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化二叉搜索树。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列 阅读全文
posted @ 2019-07-11 14:15 YF-1994 阅读(335) 评论(0) 推荐(0) 编辑