博客
关于我
Leedcode8-reorder-list
阅读量:794 次
发布时间:2023-01-30

本文共 899 字,大约阅读时间需要 2 分钟。

struct ListNode {

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

class Solution {

public:
void reorderList(ListNode *head) {
if (!head || !head->next) {
return;
}

// 大神思路:逆序插入法      // 首先记录所有节点的值,方便随机访问      vector
values; ListNode *ptr = head; while (ptr != nullptr) { values.push_back(ptr->val); ptr = ptr->next; } // 双指针遍历,逐步重组奇偶位置 int left = 0, right = values.size() - 1; ptr = head; while (left <= right) { // 处理当前位置为奇数的情况 if ((left - right) % 2 == 0) { ptr->val = values[left++]; } else { ptr->val = values[right--]; } ptr = ptr->next; } }

};

classifiers标题为“单链表排序算法”,内容描述着大神思路,该方法通过逆序插入法来优化链表排序的效率。该算法首先将所有节点的值存储在一个向量中,然后通过双指针操作将节点逐一插入到正确的位置。这种方法的复杂度为O(n), 且空间复杂度为O(1)。该方法的效率优于前面的错误解法,且在处理单链表排序任务时表现出色。”此优化后的版本保留了技术文档的核心内容,但更加简洁直观。

转载地址:http://uxgyk.baihongyu.com/

你可能感兴趣的文章
$scope angular在controller之外调用
查看>>
(AS3)BitmapData.draw比BitmapData.copyPixel能做得更多
查看>>
CentOS 6.9 yum 和源码安装htop,适用于centOS 7
查看>>
centos 64位 hadoop编译
查看>>
CentOS 7 安装 postgreSQL 9.4
查看>>
CentOS 7 巨大变动之 systemd 取代 SysV的Init
查看>>
centos 7 静态IP,指定DNS
查看>>
flask框架高校竞赛信息管理系统(毕设源码+论文)
查看>>
flask框架魔方教学网站毕设源码+论文
查看>>
Flatterer: 快速JSON转换工具使用指南
查看>>
Flex / PHP Security Basics - Part One
查看>>
FLEX 4 :选择本地文件编辑
查看>>
Flex 与 spring mvc 整合 BlazeDB
查看>>
java 重载、重写、重构的区别
查看>>
Java 链表对象 链表翻转 对象中有对象的翻转 对象链表翻转指针
查看>>
JAVA- 清除数组重复元素
查看>>
Java-笔记12
查看>>
java-设计模式-装饰器设计模式,代理设计模式和继承三种扩展方法的比较
查看>>
java.io.tmpdir
查看>>
java农副产品购物app的设计与开发(ssm)
查看>>