数据结构
WoBaole
这个作者很懒,什么都没留下…
展开
-
剑指offer17. 打印从1到最大的n位数
剑指offer17. 打印从1到最大的n位数 输入数字n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 注意:当n较大时,end会超出int32整型的取值范围,超出数值范围的数字不能正常存储。所以考虑字符串拼接的方式。 我们打印的数实际上是n位0-9的全排列。例如打印从1到最大的2位十进制数。 实际上就是一棵树,每个根节点都有十个子节点,先序遍历(深度优先搜索)这个树,将路径上的节点拼接成字符串,打印这个字符串 ..原创 2021-04-09 17:03:09 · 67 阅读 · 0 评论 -
2021-03-12
⼆叉搜索树中的众数 如果不是⼆叉搜索树 如果不是⼆叉搜索树,最直观的⽅法⼀定是把这个树都遍历了,⽤map统计频率,把频率排个序,最后取前⾯⾼频 的元素的集合。 是⼆叉搜索树 既然是搜索树,它中序遍历就是有序的。 思路 弄⼀个指针指向前⼀个节点,这样每次cur(当前节点)才能和pre(前⼀个节点)作⽐较。 ⽽且初始化的时候pre = NULL,这样当pre为NULL时候,我们就知道这是⽐较的第⼀个元素。 class Solution { int maxCount;//一个节点出现的最大频率原创 2021-03-12 09:00:28 · 72 阅读 · 0 评论 -
2021-03-11
二叉树中序遍历记录前一个节点的指针 530.⼆叉搜索树的最⼩绝对差 题⽬地址:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/ 二叉搜索树的中序遍历是有序的,利用这一特性来解题 ` /** Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode right; Tr原创 2021-03-11 21:59:14 · 49 阅读 · 0 评论 -
2020-09-29
LeetCode刷题(9.28) (链表) 编写一个程序,找到两个单链表相交的起始节点。 https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 思路:找到两个链表相同的起始位置,然后开始遍历 代码实现: /** * Definition for singly-linked list. * public class ListNode { * int val; * ...原创 2020-09-29 11:05:49 · 59 阅读 · 0 评论