LeetCode如何实现部分链表反转
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章将为大家详细讲解有关LeetCode如何实现部分链表反转,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。部分链表反转。1)链表为空或者一个节点时,返回即可2)
千家信息网最后更新 2025年02月23日LeetCode如何实现部分链表反转
这篇文章将为大家详细讲解有关LeetCode如何实现部分链表反转,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
部分链表反转。
1)链表为空或者一个节点时,返回即可
2)获取链表长度,进行m,n范围检查。
3)head部分保留m节点之前的链表。second保留[m,n]之间的节点,包括m,n两个节点。next保留n节点后的节点。
4)使用**list方便给第一部分的结束结束后置NULL。first是方便第二段链表的处理。
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseBetween(struct ListNode* head, int m, int n){ if ( head == NULL || head->next == NULL ) { return head; } int len = 0; struct ListNode *pLen = head; for ( ; pLen; pLen = pLen->next ) { len++; } if ( m < 1 || n > len ) { return head; } struct ListNode *first = head; struct ListNode **list = &head; int cnt = 1; for ( ; cnt < m; cnt++ ) { list = &(*list)->next; first = first->next; } *list = NULL; struct ListNode *second = NULL; struct ListNode *next = NULL; for ( ; cnt <= n; cnt++ ) { next = first->next; first->next = second; second = first; first = next; } first = head; while ( first != NULL && first->next != NULL ) { first = first->next; } if ( head != NULL ) { first->next = second; } else { head = second; } first = head; while ( first != NULL && first->next != NULL ) { first = first->next; } first->next = next; return head;}
关于"LeetCode如何实现部分链表反转"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
节点
部分
篇文章
更多
不错
实用
两个
之间
内容
文章
知识
第一部
范围
长度
二段
参考
处理
帮助
有关
检查
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全常见的自身风险包括哪些
字符串保存不了数据库
idea怎么连接不到数据库
软件开发合同及附件
地理国情普查数据库标准 pdf
数据库加密与安全配置方法
scop是什么数据库
it狂人网络技术学习
房地产价格数据库
服务器密码机 用户手册
三级网络技术教程百度文库
软件开发工艺 软件工厂
删除sql数据库文件
网络技术管理师怎么考
软件开发技术部职责
重启远程服务器
中国省书画家协会会员数据库
聊城做软件开发
如何进入数据库中的高级选项
跳水预习软件开发
创之界限卡片数据库
花雨婷服务器的编号
科技新基建互联网
什么是打水服务器
天津静海网络安全
服务器服务的网络规模划分
福州信息化软件开发
数据库监听器jmeter
软件开发自身键盘多久
来电信息数据库无法更新