翻转链表的递归和非递归

华为OD机试真题2026双机位C卷 Python&JS 实现【明日之星选举】 给定一组选票votes。votes[i]代表第 i 张选票的内容,包含一个字符串"zhangsan,hanmei",表示推荐zhangsan为明日之星,反对 hanmei 称为明日之星。赞成或反对使用逗号(,)分割。 给定一个数组n,表示最后将筛选出赞成票最多的n个人,如果赞成票相同,则反对票越少,排序越靠前;如果赞成票和反对票都相同,则按照姓名字典序升序排序。 阅读详情

输入一个链表,反转链表后,输出链表的所有元素。

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        //递归
        /*
        if(head==null || head.next==null)
            return head;
        ListNode p=ReverseList(head.next);
        head.next.next=head;
        head.next=null;
        return p;
        */

        //注意判断是否为空链表,以及是否只有一个元素的情况

        if(head==null)
            return null;
        ListNode p=head;
        ListNode q=p.next;
        if(q==null)
            return p;
        ListNode r=q.next;
        head.next=null;
        q.next=p;
        while(r!=null){
            p=q;
            q=r;
            r=r.next;
            q.next=p;
        }
        return q;


    }
}
国科大作业考试资料《人工智能原理与算法》2024新编-第三次作业整理 1. 你的目标是让机器人走出迷宫。机器人面朝北,开始位置在迷宫中间。你可以让机器人转向面朝东、南、西或北。你可以让机器人向前走一段距离,在撞墙之前它会停步。 (1)将问题形式化。状态空间有多大? (2)在迷宫中游走,在两条路或更多路交叉的路口可以转弯。重新形式化这个问题。现在状态空间有多大? (3)从迷宫的任一点出发,我们可以朝四个方向中的任一方向前进直到可以转弯的地方,而且我们只需要这样做。重新对这个问题进行形式化。我们需要记录机器人的方向吗? 2. 传教士和野人问题 阅读详情

相关推荐

R以及Rstudio超详细安装教程(包括安装过程中出现的问题)

R安装及Rstudio安装,以及安装中出现的问题

2301_76908257的博客 1万+

用递归和非递归两种方法翻转一个链表

先定义一下链表: [cpp] view plaincopy typedef struct node   {   ElemType data;   struct node * next;   }ListNode;   typedef struct   {   ListNode *head;   int size;   ListNo

读书与思考的乐趣 483

robot framework循环读取excel表操作

robot framework循环读取excel表操作 1、安装excellibrary,注意python3.7版本,需安装:robotframework-excel,robotframework-excellibrary-xwfintech 注意:网上有很多excel处理的,都是基于python2.7的,还有一些对python3以上都是修改包的方式,其实都不需要,在pip官网上有python3以上的excellibrary,名称是robotframework-excellib 2.0.0,但是该包关键字不

余墨的博客 1319

常用数据结构算法:翻转链表(递归和非递归方式)

测试例:1->2->3->4->5->null 非递归方式: public ListNode NoRecursion(ListNode head) { if(head==null)return null; ListNode first=null; ListNode middle=hea...

166

4、设备树的处理(1)

其实到第4节才写设备树的问题完全是因为忘记了,之前有一个版本是先关闭了设备树的,习惯性的认为设备树已经处理完了,失误了!!!前文说过,这个系统是依着荣品的开发板和核心板来的,使用的是5.1内核的SDK。它的SDK里是开发板全功能的,所以设备树也是的。

wsen2012的博客 417

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen‘s Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen's Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

2401_89898861的博客 1430

单链表的翻转递归和非递归方式(php实现、)

早上好,最近在看但链表的翻转,之前一直困惑,怎样使用php实现,后来发现重要的是捋清单链表的数据结构和翻转的基本原理,至于什么语言实现,万变不离其中,都是一样的道理,接下来,介绍一下,php实现单链表的翻转。1、最重要的是理解单链表的数据结构,(链表操作一定要画图,画图才能理解的更为深刻。)1:单向链表:单向链表的链表对象维护了一个 first 引用,该引用指向节点链表中的第一个节点对象,每个节点...

zlb_lover的博客 1905

RK3576 PCIE接口调试:基于RTL8111HS的网卡驱动移植

检查项方法电源电压复位时序检查设备树 reset-gpios链路速率设备识别lspci -vvv驱动加载。

小灰灰的博客 736

单链表递归反转和非递归翻转

今晚抽时间复习了链表,整理了递归版本和非递归版本的单链表翻转,欢迎指出错误。 1、递归版本 调用: ListNode * head = NULL; reverseRec(root, head);//head即为反转后得链表头实现如下: void reverseRec(ListNode *head = reverse(head); *root, ListNode *&head){ if (

前端产品工程师 509

国产系统(统信 UOS )漏洞修复方式

2.1 服务器版(单漏洞更新):服务器标准版:yum upgrade-minimal --cve “CVE编号”服务器 D 版:sudo apt update&&sudo apt install “受影响的软件包”1 统信 UOS 漏洞修复方式在线升级修复桌面专业版:通过以下步骤打开在线升级:控制中心–>更新–>更新设置–>打开系统更新、安全更新。安装过程中,请勾选“我已阅读并知晓”,然后点击“开始升级”。2 点击“检查更新”–“全部下载”,如果不想进行系统更新,可以选择只下载“安全更新”。

Reyn_观极 5016

PCL 改进快速欧式聚类【2025最新版】

在FEC: Fast Euclidean Clustering for Point Cloud Segmentation一文的基础上对算法进行改进。博客长期更新,本文最近更新时间为:2025年9月16日。

点云侠的博客 2570

【java编程(在线笔试)】【链表】两道k个一组翻转链表题目(包含非递归和递归两种解法)

一、给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点也反转顺序。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode

frcoder的博客 370

【DaVinci Developer工具实战】03 -导入xml文件

本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。

1991

链表翻转的递归和非递归实现

节点的定义: typedef struct Node { int data; Node *next; }Node; 创建链表: Node *CreatList() { Node *node1,*node2,*head;//*head用来标记链表,node1总是用来指向新分配的内存空间, //node2总是指向

muyimufeng的博客 325

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

2021-07-16-单链表翻转的两种方法(递归和非递归)

单链表翻转(reverse函数)返回的是头指针。递归最重要的思想是:边界、返回值、递归调用。单链表翻转使用递归,返回值一定是固定不变的。也就是返回值和递归调用之间不存在关系。

小呼哥的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C语言链表翻转算法(包含递归算法和非递归算法)

C语言链表翻转算法 递归算法 Linklist reverselist_rec(LNode *L, LNode *P)//带头结点递归算法 { LNode *N = P; if (P->next == NULL)//当访问到最后一个节点时返回 { L->next = P; return P; } P = reverselist_rec(L, P->next);//返回的节点P是当前节点N的后一个节点 P->next = N;//使返回的节点指向当前节点来实现逐级翻

weixin_44744047的博客 240

递归和非递归方法翻转链表

#include "algorithm.h"typedef struct node{    struct node * next;    char key;}list;list * reverse(list * head){    if(head==NULL || head->next==NULL)        return head;    li

312

链表翻转的递归和非递归算法

#include #include using namespace std; templatetypename T> struct Node { Node ( T value ) : mValue(value),mNext(0) { } Node *mNext; T mValue; }; templatetypename

873

单链表递归和非递归两种翻转方法(手写链表)

递归和非递归两种方法翻转单链表

pipinuan的博客 708

【刷算法】翻转单链表的递归和非递归方法

题目描述 输入一个链表,反转链表后,输出新链表的表头。 分析 典型的面试题以及大学数据结构课程常见题,没啥好分析的了... 代码实现 递归版 function ListNode(x){ this.val = x; this.next = null; } function ReverseList(h) { if(h ...

weixin_34004750的博客 82

STM32F103手动配置I2C驱动AT24C02全流程详解

I2C是一种广泛应用的同步串行总线协议,其核心在于严格的时序控制与物理层匹配。理解SCL/SDA电平特性、上升时间约束(如≤300ns)、开漏输出与上拉电阻协同机制,是实现可靠通信的基础。在嵌入式开发中,STM32F103的I2C外设需精确配置CR2、CCR、TRISE寄存器以生成合规100kHz时钟,并规避HAL库抽象带来的调试盲区。AT24C02作为典型I2C EEPROM器件,具有页写、地址自动递增、内部写周期(最大10ms)等关键行为,直接影响数据完整性。本文聚焦于从硬件连接(4.7kΩ上拉、A0-

weixin_33834628的博客 326

LintCode_35_翻转链表

翻转一个链表 您在真实的面试中是否遇到过这个题?  Yes 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑战 在原地一次翻转完成 /** * Definition for ListNode. * public class ListNode { * int val; *

zaynmalik的博客 1034

经典链表翻转(递归)

目录前言链表翻转非递归递归链表每k个节点翻转非递归 前言 链表翻转是很典型的场景案例了。在面试中被问过,挺有趣的,记录下。 链表翻转 给定一个链表,将其翻转,如下 理解起来是很简单的。 下面给定链表节点的结构 struct ListNode { int val; struct ListNode *next; }; 非递归 对于翻转这个动作,例 A->B->NULL ,可以当A的父节点也是NULL。则: (1)当前节点为A,前一个为NULL,A->next 指向NULL (2

weixin_45146520的博客 676

算法:链表翻转相关目录

递归和非递归代码如下: package org.example; class Node<T> { T val; Node next; public Node(T val) { this.val = val; } public Node(T val, Node next) { this.val = val; this.next = next; } } public class ReverseLi

ice-wee的专栏 464

翻转链表合集

翻转链表 大概可以分为如下四个,难度可以说是逐步增大的 翻转整个链表(递归和非递归) 翻转链表中的一部分 按k个一组进行翻转(从前往后) 按k个一组进行翻转(从后往前) 首先给出节点类定义 class ListNode{ int val; ListNode next; public ListNode(int val){ ...

ACE小海豚的博客 406

单链表翻转

输入一个单链表的头节点,翻转该链表,然后输出翻转后的链表的头节点。 定义链表节点: typedf struct Node{ int data; Node *next; }Node,*List; 非递归翻转: 用Cur指针表示当前要进行翻转的节点,用Pre,Next指针分别表示Cur的前继,后继。用tail表示最后的节点。 Node* reverse(List *head){ Node *C...

heheSakura的博客 761
上一篇: 求第n个丑数
下一篇: 前序中序重建二叉树
ListentTome
博客等级 码龄9年 3粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值