觅杳
觅杳
全部文章
分类
题解(25)
归档
标签
去牛客网
登录
/
注册
坠落星空
风息时休起浪,岸到处便离船
全部文章
(共69篇)
题解 | #数组中出现次数超过一半的数字#
使用摩尔选举,遇到与res一致的,就增加num;反之,减少num如果,num = 0,那么就更新res为当前的数组值。 public class Solution { public int MoreThanHalfNum_Solution(int[] array) { // ...
2023-02-11
0
211
题解 | #有效括号序列#
使用栈,遇到右括号就出栈,遇到左括号就进栈。最后,判断栈是否为空,从而返回相应结果。以左括号为值,右括号为键进行存储到map中,方便判断遇到的是哪个括号,以及是该括号的左半部分还是右半部分。由此,确定左右括号的办法,就是与map中存储的值键进行比对。遇到右括号,且左括号与之匹配,则将左括号出栈;反之...
2023-02-11
0
247
题解 | #合并二叉树#
// 同时遍历两棵树即可 // 递归返回值和参数:返回值就是TreeNode,参数是t1和t2 // 递归终结:如果都为null,返回null;一方为null,返回另一方 // 单层逻辑:合并结果,左侧为左子树合并结果,右侧为右子树合并结果 import java.util...
2023-02-02
0
351
题解 | #二叉搜索树的最近公共祖先#
通过画图分析可知,二叉树的最近公共祖先,其实就是第一个出现在p和q的返回之内的节点但是由于p和q的大小关系不确定,所以无法直接写出范围,所以,反向思维,写 root.val都大于或都小于,两者都不满足的话,就说明在二者的范围之内,那么直接返回即可 import java.util.*; /* *...
2023-01-27
0
236
题解 | #二叉树的后序遍历#
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int v...
2023-01-27
0
344
题解 | #判断是不是平衡二叉树#
平衡二叉树的定义:左右子树高度差的绝对值 <= 1,且左右子树都是平衡二叉树显然,具有递归特性,考虑使用递归。此时,需要计算左右子树的高度差,以及左右子树各自是否是平衡二叉树,显然一个是int,一个是boolean需要确定递归过程或者说递归返回值,是递归深度int,还是递归是否是平衡二叉树bo...
2023-01-10
0
249
题解 | #二叉树的最小深度#
考虑类似于最大深度的求法,即使用递归。到达叶子节点,即左右节点都为null,返回 0(较小的深度,但两边都是0) + 1;节点的左右子树都不为null,返回左右子树较小的深度 + 1;节点的左右子树只有一方为null时,求法有所不同,要返回的应该是左右子树深度较大的 + 1,而不是较小的。(因为当节...
2023-01-09
0
418
题解 | #对称的二叉树#
二叉树对称,即以根节点所在为分界线,左右两半相等。根据二叉树对称的条件,可知 左子树的左子树和右子树的右子树,左子树的右子树和右子树的左子树,左子树和右子树的值相等才可。通过分析可知,使用递归 /* public class TreeNode { int val = 0; TreeN...
2023-01-09
0
258
题解 | #二叉树的前序遍历#
前序遍历,即根左右。一般使用递归进行遍历在当前递归中处理根节点,下一层处理左节点,然后是右节点。且递归终结条件,若当前节点为空,则直接返回。 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeN...
2023-01-08
0
291
题解 | #删除链表的倒数第n个节点#
删除的前提是,确定节点位置。找到倒数第n个节点采用双指针的方式快指针先前进n个节点,然后慢指针从头开始,二者并行,直至快指针到达链表尾部此时,慢指针指向的,就是倒数第n个节点删除倒数第n个节点确定倒数第n+1个节点,即待删除节点node的前驱节点pre设置pre.next = node.next,即...
2023-01-05
0
263
首页
上一页
1
2
3
4
5
6
7
下一页
末页