237.删除链表中的节点+1221.分割平衡字符串

237.删除链表中的节点

题目描述:
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 -- head = [4,5,1,9],它可以表示为:
示例 1:
输入: head = [4,5,1,9], node = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入: head = [4,5,1,9], node = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
说明:
链表至少包含两个节点。
链表中所有节点的值都是唯一的。
给定的节点为非末尾节点并且一定是链表中的一个有效节点。
不要从你的函数中返回任何结果。

思路:
与下一个节点交换
从链表里删除一个节点 node 的最常见方法是修改之前节点的 next 指针,使其指向之后的节点。

image.png

因为,我们无法访问我们想要删除的节点之前的节点,我们始终不能修改该节点的 next 指针。相反,我们必须将想要删除的节点的值替换为它后面节点中的值,然后删除它之后的节点。


image.png

因为我们知道要删除的节点不是列表的末尾,所以我们可以保证这种方法是可行的。

代码:(C++)

class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val=node->next->val;
        node->next=node->next->next;
    }
};

提交结果:

提交结果.png

1221.分割平衡字符串

题目描述:
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。
给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。
返回可以通过分割得到的平衡字符串的最大数量。
示例 1:
输入:s = "RLRRLLRLRL"
输出:4
解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。
示例 2:
输入:s = "RLLLLRRRLR"
输出:3
解释:s 可以分割为 "RL", "LLLRRR", "LR", 每个子字符串中都包含相同数量的 'L' 和 'R'。
示例 3:
输入:s = "LLLLRRRR"
输出:1
解释:s 只能保持原样 "LLLLRRRR".
提示:
1 <= s.length <= 1000
s[i] = 'L' 或 'R'

思路:
遍历一遍字符串,分别统计R和L的数量,每次RL数量相等时得到一个平衡字符串,然后将RL数量置零继续遍历,直到结束,得到平衡字符串数量。
代码:(C++)

class Solution {
public:
    int balancedStringSplit(string s) {
        int i;
        int Rcount=0;
        int Lcount=0;
        int count=0;
        for(i=0;i<s.size();i++)
        {
            if(s[i]=='R')
                Rcount++;
            if(s[i]=='L')
                Lcount++;
            if(Rcount==Lcount)
                {
                 count++;   
                 Lcount=0;
                 Rcount=0;
                }
        }
        return count;
    }
};

提交结果:

提交结果.png

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,295评论 0 13
  • 数据结构是算法的基石,如果没有扎实的数据结构基础,想要把算法学好甚至融会贯通是非常困难的,而优秀的算法又往往取决于...
    layjoy阅读 4,075评论 0 1
  • 简述 极客时间算法40讲中所出现的leetcode算法题 题目 【链表】reverse-linked-list(反...
    BestbpF阅读 9,925评论 0 4
  • 0. 序言 学习数据结构之余,来LeetCode上刷刷简单的算法题,如果你对LeetCode刷题感兴趣,欢迎关注我...
    付凯强阅读 2,985评论 0 3
  • 小五www阅读 1,163评论 0 1