LeetCode、牛客
刷题
猴子奔跑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NC3 链表中环的入口结点
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { if(pHead==null||pHead.next==null){ .原创 2021-08-07 22:56:04 · 592 阅读 · 0 评论 -
LeetCode 102. 二叉树的层序遍历
思路: 首先新建一个前序遍历函数,然后,其中参数包括结点、List和深度,如果深度大于list中list的数量,则新加入一个list再取list中的第deep-1个列表 加入root.val的值 class Solution { List<List<Integer>> list=new ArrayList<>(); public List<List<Integer>> levelOrder(TreeNode root) { .原创 2021-08-04 20:23:54 · 438 阅读 · 0 评论 -
LeetCode42. 接雨水
解题思路 从数组下标0开始进行遍历,计算每一个单元能够容纳的水量是多少,然后进行求和。(不知道能不能实现或者实现很困难) 每个单元能够存储的水量取决于左右两侧"墙"的最大值中的最小值。 尝试先遍历出每个单元左侧"墙"和右侧"墙"的最大值,然后进行循环遍历,利用公式: water=min(max(leftMax,rightMax)-x) 使用双指针,计算左指针左侧最大值leftMax和右指针右侧最大值rightMax,然后利用上面公式计算。 class Solution { .原创 2021-07-30 23:10:30 · 655 阅读 · 0 评论 -
NC4 判断链表中是否有环
使用快慢指针,如果存在闭环的话,快慢指针一定会相遇。 public class Solution { public boolean hasCycle(ListNode head) { if(head==null) return false; ListNode slow=head; ListNode fast=head; while(fast!=null&&fast.next!=null){ sl.原创 2021-07-30 22:55:06 · 633 阅读 · 0 评论 -
LeetCode538. 把二叉搜索树转换为累加树
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { ..原创 2021-06-02 22:13:09 · 1411 阅读 · 0 评论 -
LeetCode230.二叉搜索树中第K小的元素
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { .原创 2021-06-02 22:11:25 · 1323 阅读 · 0 评论 -
LeetCode654.最大二叉树
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { ..原创 2021-06-02 16:14:58 · 1319 阅读 · 0 评论 -
LeetCode116. 填充每个节点的下一个右侧节点指针
/* // Definition for a Node. class Node { public int val; public Node left; public Node right; public Node next; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, Node _left, Node _.原创 2021-05-31 21:10:26 · 1429 阅读 · 0 评论 -
LeetCode226. 翻转二叉树
翻转一棵二叉树。 示例: 输入: 4 / 2 7 / \ / 1 3 6 9 输出: 4 / 7 2 / \ / 9 6 3 1 写树相关的算法,简单说就是,先搞清楚当前 root 节点该做什么,然后根据函数定义递归调用子节点,递归调用会让孩子节点做相同的事情。 我们发现只要把二叉树上的每一个节点的左右子节点进行交换,最后的结果就是完全翻转之后的二叉树 /** * Definition for a binary tree node. *原创 2021-05-31 20:35:12 · 1419 阅读 · 0 评论 -
LeetCode 92. 反转链表 II
class Solution { public ListNode reverseBetween(ListNode head, int left, int right) { // 设置 dummyNode 是这一类问题的一般做法 ListNode dummyNode = new ListNode(-1); dummyNode.next = head; ListNode pre = dummyNode; for (int i原创 2021-05-27 10:17:45 · 1379 阅读 · 0 评论
分享