求链表中奇数位置上的和

将一个链式链表L分成2个链表,一个存储L的奇数位置的元素,一个存储L偶数位置的元素 //将一个链式链表L分成2个链表,一个存储L的奇数位置的元素,一个存储L偶数位置的元素#include using namespace std; typedef struct node { int data; struct node *next; }L; void Initial_List(L * &h) { L *p;///用于插入 L *r;//尾节点 h=(L *)malloc 阅读详情

给出一个链表,每个节点有一个数值,你需要返回链表奇数位置的数值之和,位置从1开始计数。

例如链表为1->2->4->5->6你需要返回11

#include<stdio.h>
#include <algorithm>
using namespace std;

struct ListNode{
    int val;
    ListNode *next;
    ListNode():val(0), next(NULL){};
    ListNode(int val):val(val), next(NULL){}
};

//you just need submit this function
int oddSum(ListNode *head){
    //place your code here
}

int main(){
    int size = rand() % 1000 + 1;
    ListNode *dummy = new ListNode(0);
    ListNode *prev = dummy;
    int middleValue = 0, sum = 0;
    for (int i = 1; i <= size; i++){
        int val = rand() % 100000;
        if (i % 2) sum += val;
        ListNode *temp = new ListNode(val);
        prev->next = temp;
        prev = temp;
    }

    if (sum == oddSum(dummy->next)){
        puts("YES");
    } else{
        puts("NO");
    }
    return 0;
}

代码实现:

#include<iostream>
#include<algorithm>
using namespace std;

struct ListNode{
    int val;
    ListNode *next;
    ListNode():val(0), next(NULL){};
    ListNode(int val):val(val),next(NULL){};
};

//每次都让 指针p 走两步,直到走完整个链表 
int oddSum(ListNode *head)
{
    int result = 0;
    ListNode *p = head;
    while(p != NULL){
        result += p->val;
        p = p->next->next;
    }
    return result;
}


int main()
{
    int size = rand() % 1000 + 1;
    ListNode *dummy = new ListNode(0);
    ListNode *prev = dummy;
    int middleValue = 0, sum = 0;
    for(int i = 1; i <= size; i++){
        int val = rand() % 100000;
        if(i % 2)
            sum += val;
        ListNode *temp = new ListNode(val);
        prev->next = temp;
        prev = temp;
    }
    if(sum == oddSum(dummy->next)){
        puts("YES");
    }else{
        puts("NO");
    }
    return 0;
}
将链表的所有奇数元素放于偶数元素前面 具体要求: 头文件: #pragma once #include #include #include typedef int DataType; typedef struct Node { DataType data; struct Node *next; }*PNode,Node; void ParityRearrangement(PNode *pHead) 阅读详情

相关推荐

面试题:有一个链表,奇数位升序偶数位降序,如何将链表变成升序

一、概述 有一个链表,奇数位升序偶数位降序,如何将链表变成升序。 二、

2228

将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变(创新工场)

示例: 交换前链表的顺序 交换后链表的顺序 4→5→3→1→2   ==>  5→3→1→4→2  1 ==> 1 (链表仅含一个元素) 2→1 ==>1→2   ==> (链表为空)   C/C++: 链表节点定义为: struct node { struct node *next; int value; }; struct node *swap(struct node

west_ahu的博客 5796

链表拆成两个链表(奇数链和偶数链)

#include #include #include using namespace std; struct Node{ int data; Node* next; }; void exchange(Node* &p1,Node* &p2){ Node* tmp=p1; p1=p2; p2=tmp; } void transform(Node* head,Node* &head1,No

陈氏春秋 4929

调整单链表使得奇数位置的元素位于偶数位置元素之前

给定一个单链表,使得奇数位置的元素位于偶数位置元素之前。比如说:1->2->4->5->6->NULL,调整以后1->4->6->2->5->NULL。 解析:这道题和上面一道题的区别是:不是把链表中奇数元素位于偶数元素之前,而是奇数位置的元素位于偶数位置元素之前。设置三个指针,指针odd指向奇数位置的元素,指针even指向偶数位置的元素,指针evenHead指向第一个偶数位置的元素,按

yang20141109的专栏 3291

线性表(链表倒置、奇数偶数位置分成两个表实验)

#include<stdio.h> #include<stdlib.h> #define FAILURE 0 #define SUCCESS 1 #define OVERFLOW 2typedef struct LNode{ int data; struct LNode* next; }LNode,*LinkList;void CreateList_L(LinkList &L, in

peerless1024的博客 1813

【ISAR成像】基于Matlab的飞机点目标模型仿真与图像优化

本文详细介绍了如何使用Matlab进行ISAR成像仿真,重点讲解了从构建飞机点目标模型到生成清晰图像的完整流程。通过模拟雷达回波、距离压缩、运动补偿及方位压缩等核心信号处理步骤,并结合相位梯度自聚焦等优化技巧,有效提升了ISAR图像的清晰度与分辨率。文章还分享了雷达参数调优、加窗处理等实战经验,为雷达信号处理与目标识别研究提供了实用指导。

weixin_29071809的博客 388

把一个链表的奇数和偶数分开

给你一个单链表,修改此单链表,使得前面是偶数,后面是奇数。偶数间的相对顺序不变,奇数间的相对顺序不变。返回修改后的单链表的头节点。例如:Input: 17-&gt;15-&gt;8-&gt;12-&gt;10-&gt;5-&gt;4-&gt;1-&gt;7-&gt;6-&gt;NULLOutput: 8-&gt;12-&gt;10-&gt;4-&gt;6-&gt;17-&gt;15

u013546334的专栏 3902

汽车底盘技术解析:从悬架调校到智能化,如何评价国产车底盘实力

汽车底盘作为决定车辆驾驶质感、安全性和耐久性的核心系统,其技术内涵远不止于悬架结构。从行驶系、转向系到制动系的协同工作,底盘调校是一门融合机械原理与工程实践的艺术。在电动化与智能化浪潮下,底盘技术正经历从被动适应到主动响应的变革,CDC可变阻尼减震器和空气悬架等技术的应用,让底盘具备了通过OTA升级实现性能优化的可能。国产汽车品牌如奇瑞、吉利等,通过平台化架构研发与调校经验积累,正推动底盘技术从“能用”向“好用”乃至“塑造独特驾驶风格”迈进。理解底盘技术,需超越简单的结构对比,关注其在实际路况中的滤震性、支

weixin_34413103的博客 384

删除链表奇数元素

/* 功能: 删除队列中的奇数元素 思路: 队列是先进先出,前面删除后面插入的了,所以呢 我们就从前面开始,删除,偶数的话就插到队尾,奇数就不管咯 结束条件呢,就是原来的队尾都删除了吧 */ // 如果要用链队好了 #include #include typedef struct qnode { int data; struct qnode *n

github_30830155的博客 2586

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值)【含Matlab源码 4887期】

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值) 完整的代码,包运行;运行操作视频见优快云资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 810

SAP UI5 和 Fiori 的一些小技巧合集 - 持续更新中

本文介绍笔者从事 SAP UI5 和 Fiori 开发多年以来,积累的一些经验和小技巧。会保持更新。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 911

链表的面试题3找出中间节点

来来来,接着继续我们的第三道题。这道题的话,思路是非常明确的,就是让你找出我们这个所谓的中间节点并且输出。那这道题我们就需要注意一些细节上的问题,或者说是对于整个链表结构的访问的理解要到位。如果这道题放在顺序表上,那我们很容易就能根据下标来判断是否为中间节点。但是,问题就出在,链表是不能依据数组下标来访问的,那这道题我们很简单的思路就是,先得出链表长度,再定义变量值来求中间节点。那我把代码贴在下面。

chenyuhao2024的博客 359

在Windows10上安装WSL2

WSL2是微软提供的Windows子系统,允许在Windows 10和11上运行Linux环境,提供更好的性能和兼容性。安装WSL2需要启用WSL功能、更新系统、安装WSL2内核,并设置为默认版本。之后,可以通过Microsoft Store安装Linux发行版,并使用WSL命令启动和管理它们。

howard2005的专栏 5937

删除带头结点的单链表的奇数结点

【单链表算法】设带头结点的非空单链表 L,设计一个算法删除 L 中奇数序号 的结点,即删除 L 中第 1、3、5…结点。 #include<stdio.h> #include<malloc.h> typedef struct node { int data; struct node* next; }node; // 定义结构体 node* creat(int l...

weixin_45963815的博客 4228

手把手教你学simulink--永磁同步电机场景实例:使用Simulink进行PMSM的矢量控制仿真

矢量控制的重要性提高效率:通过精确控制磁场方向,可以优化电机的工作状态,减少损耗。增强动态性能:矢量控制能够快速响应负载变化,提供更好的调速性能。简化设计:将复杂的交流电机控制问题转化为类似直流电机的控制问题,便于设计和实现。通过上述步骤,我们简要介绍了如何基于Simulink实现PMSM的矢量控制仿真。

MHD0815的博客 418

YOLO11涨点优化:知识蒸馏 | 引入FGD(Focal and Global Distillation)蒸馏,让轻量学生模型汲取大模型全局感知力

文章摘要 目标检测模型YOLO11在轻量化部署中存在"全局盲区"问题,即轻量模型感受野不足导致大尺度场景下性能下降。知识蒸馏技术FGD(Focal and Global Distillation)通过双分支机制有效解决这一问题:Focal Distillation分离前景背景特征,让学生模型聚焦关键区域;Global Distillation传递像素间关系信息,弥补全局感知缺陷。实验表明,FGD可使YOLO11轻量版mAP提升2.5%以上,且不增加推理耗时。本文详细解析了FGD原理,并给出YOLO11上的实

2601_95807009的博客 226

链表奇偶位置调换

题目:将链表的奇数位和偶数位调换组成新的链表 分析:先遍历链表,将链表依据奇数位和偶数位分解成两个链表,然后依次在偶数位链表中的每个结点后面插入奇数位链表中的相应位置的每个结点。定义两个函数,一个是删除链表头结点,另一个是在指定结点后面插入一个节点。重组链表的过程即是删除奇数位链表头结点,然后再将其插入在偶数位链表中指定的位置上。 时间复杂度为O(N) /* * 将链表的奇数位和偶数位

SIMPLE ・ STUPID 3250

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

习题11-7 奇数值结点链表 (20分)

本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下: struct ListNode { int data; ListNode *next; }; 函数接口定义: struct ListNode *readlist(); struct ListNode *getodd( struct ListNode **L ); 函...

Armor的博客 4202

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

题目:将链表的奇数位和偶数位调换组成新的链表

原文链接 题目:将链表的奇数位和偶数位调换组成新的链表 troy1111 2017-05-08 01:19:33 浏览31 评论0 编程语言 javascript 函数 HTTPS 排序 list 摘要: 题目:将链表的奇数位和偶数位调换组成新的链表 原题链接: http://oj.leetcode.com/problems/swap-nodes-in-pair

bystarlight的博客 1728

c++语言偶数分离,在C++的链表中分离偶数和奇数节点

所以,我自学数据结构和算法。在解决一些问题时,我遇到了下面的问题,我必须分离链表的奇偶节点。在C++的链表中分离偶数和奇数节点以下是问题陈述:鉴于整数链表,编写一个函数来修改链表,使所有偶数在修改后的链接列表中的所有奇数出现之前。此外,保持偶数和奇数的顺序相同。我知道这个问题被问了很多次。但我仍然无法找到答案。我知道,有多种方法来解决这个问题,但试图以如下方式1. Traversing over ...

weixin_39997037的博客 824

【List-medium】328. Odd Even Linked List 偶数位置放在后面,奇数位置元素放到前面

1. 题目原址 https://leetcode.com/problems/odd-even-linked-list/ 2. 题目描述 3. 题目大意 给定一个链表,将链表的奇数位置的元素连接起来放到前面,偶数位置的元素连接起来放到所有奇数元素的后面 4. 解题思路 5. AC代码 class Solution { public ListNode oddEvenList(ListNode...

想当厨子的程序媛 860

25. 【C语言】将单链表按照结点的奇偶位置拆分成两个链表(5_task)

问题描述: 将一个链表拆分(将链表奇数位置上的节点构成一个链表,偶数位置上的节点构成另一 个链表) 例如:List:1 -> 2 -> 3 ->4 ->5 ->6 ->7 ->8 ->9 ->10->11-> NULL List1: 1 ->3 ->5 ->7 ->9 ->11-> NULL ;...

DennisCheng520的博客 3405

将一个单链表按照奇偶位置分成两个单链表(其中一个将原来位置逆序)

//C={a1,b1,a2,b2,...,an,bn},带头结点,就地拆分成两个线性表, //使得A={a1,a2,...,an} B={bn,...,b2,b1} //还是通过奇偶位置判断,A采用尾插法,B采用头插法 LinkList Depart_AB(LinkList &A){ int count = 1;//计数器 //创建B链表 LinkList B = (LinkList)malloc(sizeof(LNode)); B->next = NULL;.

许你一片梁城的博客 2223

调整数组顺序使奇数位于偶数前面、链表中倒数第k个结点及反转链表

2020/8/14JZ13 调整数组顺序使奇数位于偶数前面JZ14 链表中倒数第k个结点JZ15 反转链表 JZ13 调整数组顺序使奇数位于偶数前面 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 从题目得出的信息: 相对位置不变—>保持稳定性; 奇数位于前面,偶数位于后面 —>存在判断,挪动元素位置; 这些都和内部排序算法相似,考虑到具有稳定性的排序算法不多,

qq_39568387的博客 184
上一篇: T-Prime(数学规律)
下一篇: 博弈论问题
HowardLin
博客等级 码龄11年 2粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值