首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
剑指offer
解夏126
创建于2022-05-01
订阅专栏
刷题
暂无订阅
共75篇文章
创建于2022-05-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
反转链表
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。请同时实现迭代版本和递归版本。res = new ListNode(head.ListNode list1 = new ListNode(head.list1.head = head.if (head == ...
链表中环的入口结点
给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。 给定如上所示的链表: 输入:[1, 2, 3, 4, 5, 6] 输出:2 注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。 则输出环的入口节点3.wh...
树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。我们规定空树不是任何树的子结构。返回 true ,因为B是A的子结构。if(root1.val == root2.res = hasSubtree(root1.res = hasSubtree(root1.if(root1.val !...
合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。if(l1.val > l2.temp.l2 = l2.temp.l1 = l1.temp = temp.temp.l1 = l1.temp = temp.temp.l2 = l2.temp = tem...
对称的二叉树
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。return test(root.left,root.return (left.val == right.val) && test(left.left,right.right) && t...
二叉树的镜像
输入一个二叉树,将它变换为它的镜像。TreeNode temp = root.root.left = root.root.mirror(root.mirror(root.
顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。if (matrix.length == 0 || matrix[0].final int m = matrix.final int n = matrix[0].
包含min函数的栈
设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。minStack.minStack.minStack.minStack.minStack.minStack.minStack.stack.if(min.empty() || x <= min....
栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。注意:若两个...
不分行从上往下打印二叉树
从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。q.while(q.TreeNode tmp = q.q.list.add(tmp.if(tmp.q.offer(tmp.if(tmp.q.offer(tmp.
分行从上往下打印二叉树
从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行。q.q.while(q.if(q.if(list1.q.list.q.TreeNode tmp = q.q.list1.add(tmp.if(tmp.q.offer(tmp.if(tmp.q.offer(...
之字形打印二叉树
请实现一个函数按照之字形顺序从上向下打印二叉树。即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。queue.while(!queue.int size = queue.TreeNode node = queue.cur...
二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。if(sequence.int length = sequence.
二叉树中和为某一值的路径
输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。给出二叉树如下所示,并给出num=22。sum += root.if(root.left == null && root.a1.add(root.ar...
复杂链表的复刻
请实现一个函数可以复制一个复杂链表。在复杂链表中,每个结点除了有一个指针指向下一个结点外,还有一个额外的指针指向链表中的任意结点或者null。函数结束后原链表要与输入时保持一致。ListNode CloneNode = new ListNode(node.copy.node = ...
二叉搜索树与双向链表
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。需要返回双向链表最左侧的节点。 例如,输入下图中左边的二叉搜索树,则输出右边的排序双向链表。if(root.convert(root.tree = new TreeN...
数字排列
输入一组数字(可能包含重复数字),输出其所有的排列方式。Arrays.backtrack(list, new ArrayList<>(), nums, new boolean[nums.if(tempList.size() == nums.list.for(int i = 0; ...
序列化二叉树
请实现两个函数,分别用来序列化和反序列化二叉树。您需要确保二叉树可以序列化为字符串,并且可以将此字符串反序列化为原始树结构。 以上的格式是AcWing序列化二叉树的方式,你不必一定按照此格式,所以可以设计出一些新的构造方式。// Encodes a tree to a singl...
数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。假设数组非空,并且一定存在满足条件的数字。for(int i = 1; i < nums.if(nums == null || nums.Arrays.return nums[nums.
最小的k个数
输入n个整数,找出其中最小的k个数。heap.if (heap.size() > k) heap.while(heap.res.push_back(heap.heap.reverse(res.begin(), res.
下一页