首页 > 其他分享 >leetcode 2181.合并零之间的结点

leetcode 2181.合并零之间的结点

时间:2024-08-02 21:28:00浏览次数:10  
标签:结点 cur int sum number ++ 2181 leetcode struct

1.题目要求:

在这里插入图片描述

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* mergeNodes(struct ListNode* head){
    struct ListNode* cur = head;
    int count = 0;
    //1.遍历结点,求出结点数
    while(cur){
        count++;
        cur = cur->next;
    }
    cur = head;
    //2.创造数组,把结点值依次放入数组中
    int* number = (int*)malloc(sizeof(int) * count);
    int j = 0;
    while(cur){
        number[j] = cur->val;
        j++;
        cur = cur->next;
    }
    //3.再创一个数组,用于解决0之间和的存储问题
    int* sum_number = (int*)malloc(sizeof(int) * count);
    int f = 0;
    int i = 0;
    int sum = 0;
    //4.开始遍历数组,把0之间的和放入到sum_number数组中
    for(i = 1;i < j - 1;i++){
        if(number[i + 1] != 0){
            sum += number[i];
        }else{
            sum += number[i];
            sum_number[f] = sum;
            f++;
            sum = 0;
            i++;
        }
    }
    cur = head;
    i = 0;
    //5.把sum_number中的值赋给链表
    while(cur){
        cur->val = sum_number[i];
        i++;
        if(i == f){
            break;
        }
        cur = cur->next;
    }
    //6.最后把剩余链表置空,返回头结点
    cur->next = NULL;
    return head;
}

标签:结点,cur,int,sum,number,++,2181,leetcode,struct
From: https://blog.csdn.net/m0_54244065/article/details/140880593

相关文章

  • leetcode 2181.合并零之间的结点
    1.题目要求:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*mergeNodes(structListNode*head){structListNode*cur=head;intcount=0;//1.遍历结......
  • LeetCode | 303 RangeSumQueryImmutable
    https://github.com/dolphinmind/datastructure/tree/datastructure-array-02分析所求解的区间[left,right]具有连续性,执行常规for循环计算,[0,left-1]的区间元素累加和与[0,right]的区间元素累加和,有重复的运算区间[0,left)。累加和与长跑比赛其实一致,求取[left,right]区......
  • 【代码随想录训练营第42期 Day17打卡 二叉树Part5-LeetCode 654.最大二叉树 617.合并
    目录一、做题心得二、题目与题解题目一:654.最大二叉树题目链接题解:递归题目二:617.合并二叉树题目链接题解:递归(前序遍历)题目三:617.合并二叉树题目链接题解:BFS层序遍历 题目四:98.验证二叉搜索树题目链接题解:递归(中序遍历)三、小结一、做题心得今天是代码随想......
  • LeetCode 152 乘积最大子数组
    题目描述给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个32位整数。思路这一题用普通的连续子数组思路求解时有一个问题:子问题的最优解不一定是总体的最优局部解。也就是不满足最优......
  • 【leetcode232:用栈实现队列】
    leetcode232:用栈实现队列题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素booleanemp......
  • LeetCode | 59 SpiralMatrixII
    主类https://github.com/dolphinmind/datastructure/tree/datastructure-array-02循环不变量原则,保证问题边界的逻辑一致性(从二分法的启发)初始位置旋转圈数奇偶性四条边的边界逻辑offsetpackagecom.github.dolphinmind.array;/***@authordolphinmind*@C......
  • [Leetcode]SQL语句
    groupby182.查找重复的电子邮箱SQLSchemaPandasSchema表:Person+-------------+---------+|ColumnName|Type|+-------------+---------+|id|int||email|varchar|+-------------+---------+id是该表的主键(具有唯一值的列)。此......
  • 二叉搜索树,Map,Set,LeetCode刷题
    二叉搜索树,Map,Set1.二叉搜索树2.二叉搜索树的模拟实现1.1插入操作1.2查找操作1.3删除操作3.二叉搜索树时间复杂度分析4.TreeMap和TreeSet5.Map5.1Map的常用方法5.2Map.Entry<K,V>6.Set6.1Set的常用方法LeetCode刷题1.二叉搜索树与双向链表1.二叉搜......
  • LeetCode | 209 MinimumSizeSubarraySum
    分析本题中是找与target相符的最小连续的子数组和,找一个能够容纳target这么大的最小子区间。虽然本节引入了滑动窗口的概念,可我更偏好于,这是一只毛毛虫在数组上的移动,找到最小的容纳自己位置的地方target可看作毛虫本身的重量,数组中的每个元素值表示可承受的重量,right右指针看......
  • LeetCode 322 零钱兑换
    题目描述给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。思路这是一个完全背包问题,背包问题当满足:物品不......