LeetCode75——Day29

2023-11-08 11:52
文章标签 leetcode75 day29

本文主要是介绍LeetCode75——Day29,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、题目
    • 二、题解

一、题目

2095. Delete the Middle Node of a Linked List

You are given the head of a linked list. Delete the middle node, and return the head of the modified linked list.

The middle node of a linked list of size n is the ⌊n / 2⌋th node from the start using 0-based indexing, where ⌊x⌋ denotes the largest integer less than or equal to x.

For n = 1, 2, 3, 4, and 5, the middle nodes are 0, 1, 1, 2, and 2, respectively.

Example 1:

Input: head = [1,3,4,7,1,2,6]
Output: [1,3,4,1,2,6]
Explanation:
The above figure represents the given linked list. The indices of the nodes are written below.
Since n = 7, node 3 with value 7 is the middle node, which is marked in red.
We return the new list after removing this node.
Example 2:

Input: head = [1,2,3,4]
Output: [1,2,4]
Explanation:
The above figure represents the given linked list.
For n = 4, node 2 with value 3 is the middle node, which is marked in red.
Example 3:

Input: head = [2,1]
Output: [2]
Explanation:
The above figure represents the given linked list.
For n = 2, node 1 with value 1 is the middle node, which is marked in red.
Node 0 with value 2 is the only node remaining after removing node 1.

Constraints:

The number of nodes in the list is in the range [1, 105].
1 <= Node.val <= 105

二、题解

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* deleteMiddle(ListNode* head) {if(head->next == nullptr) return nullptr;//快指针ListNode* fast = head;//慢指针ListNode* slow = head;//慢指针的前一个指针ListNode* pre = nullptr;//快指针每移动两格,慢指针移动一格while(fast && fast->next){fast = fast->next->next;pre = slow;slow = slow->next;}pre->next = slow->next;return head;}
};

这篇关于LeetCode75——Day29的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369678

相关文章

【Java_Spring】Day29 finalize()垃圾回收

finalize()方法 finalize() 是 Java 中 Object 类的一个方法,用于在对象被垃圾回收器回收之前进行清理操作。它是一种资源释放的回调机制,允许开发者在对象销毁前进行一些特定的清理工作,如关闭文件、释放系统资源等。 作用与原理: 垃圾回收器回调:当垃圾回收器(Garbage Collector, GC)确定一个对象没有被任何引用时,它会在对象销毁之前调用该对象的 f

代码随想录算法训练营_day29

题目信息 134. 加油站 题目链接: https://leetcode.cn/problems/gas-station/题目描述: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 c

算法day29

第一题 695. 岛屿的最大面积         本题解法:采用bfs的算法;         本题使用象限数组的遍历方法和定义布尔数组vis来遍历每一个元素的上下左右元素,防治被遍历的元素被二次遍历;         本题具体分析如上题故事,但是由于要求区域的最大面积,所以在bfs方法中找到合适的元素进行入队列操作时,我们要对其个数进行统计; 至此,代码如下: class Solutio

二刷算法训练营Day29 | 回溯算法(5/6)

目录 详细布置: 1. 491. 非递减子序列 2. 46. 全排列 3. 47. 全排列 II 详细布置: 1. 491. 非递减子序列 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。 建议:本题和大家刚做

代码随想录-Day29

491. 非递减子序列 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。 示例 1: 输入:nums = [4,6,7,7] 输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7

代码随想录算法训练营day29|491.递增子序列、46.全排列、47.全排列II

递增子序列 491. 非递减子序列 - 力扣(LeetCode)         非递减子序列,则答案的子集中,需保持下一个元素大于等于前一个元素的顺序,由于题目中指出,所有的子序列长度需大于等于2,考虑当条件为path.size()>1时,进行收获结果,且需要注意,这时不应该直接return,因为后续仍有可能存在子序列长度大于2的结果,仍需要继续遍历。此时结束的标志是单层遍历的结束。

前端面试题日常练-day29 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末。 1. 在Vue中,以下哪个选项用于监听用户的输入事件? a) v-on:input b) v-model c) v-bind d) v-show 2. Vue中,以下哪个选项用于为异步操作提供更好的错误处理机制? a) v-on:click b) v-if c) v-else d) v-on:error 3. 在Vue中,

【算法训练 day29 组合总和、组合总和Ⅱ、分割回文串】

目录 一、有序数组的平方-LeetCode 39思路实现代码个人问题总结 二、组合总和Ⅱ-LeetCode 40思路实现代码个人问题总结 三.分割回文串-LeeCode 131思路实现代码个人问题总结 一、有序数组的平方-LeetCode 39 Leecode链接: leetcode 39 文章链接: 代码随想录 视频链接: B站 给你一个 无重复元素 的整数数组 can

代码随想录训练营Day29:动态规划1

动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 1.动态规划的解题步骤 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 找问题的最好方式就是把dp数组打印出来,看看究竟是不是按照自己思路推导的! 做动规的题目,写代码之前一定要把状态转移在dp数组的上具体情况模

【leetcode75】Intersection of Two Arrays(数组的交集)

题目描述: 给定两个数组求他们的公共部分,输出形式是数组,相同的元素只是输出一次 例如: nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. 原文描述: Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1,