当前位置: 首页 > article >正文

【百日算法计划】:每日一题,见证成长(014)

题目

奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起
示例:
输入: 2->1->3->5->6->4->7->NULL
输出: 2->3->6->7->1->5->4->NULL

思路

  • 构建两个结果链表,分别存储奇偶节点

  • 使用一个辅助变量用来判断奇偶节点

  • 把奇链表的尾指向偶链表的头

public ListNode oddEvenList1(ListNode head) {

    if (head == null) return null;

    ListNode oddList = new ListNode(); //存储奇数节点的结果链表
    ListNode oddTail = oddList;

    ListNode evenList = new ListNode(); //存储偶数节点的结果链表
    ListNode evenTail = evenList;

    int count = 1; //用来判断奇偶的辅助变量

    ListNode p = head;
    while (p != null){
        ListNode tmp = p.next;
        if (count % 2 == 1){
            p.next = null;
            oddTail.next = p;
            oddTail = p;
        } else {
            p.next = null;
            evenTail.next = p;
            evenTail = p;
        }
        count++;
        p = tmp;
    }
    //把奇链表的尾指向偶链表的头
    oddTail.next = evenList.next;
    return oddList.next;
}

http://www.kler.cn/news/308258.html

相关文章:

  • 【SQL Server】清除日志文件ERRORLOG、tempdb.mdf
  • 如何快准稳 实现MySQL大表历史数据迁移?
  • linux文件系统权限详解
  • 服务器——装新的CUDA版本的方法
  • Web:HTTP包的相关操作
  • RocksDB系列一:基本概念
  • flink实战--如何基于java-agent技术增强Flink功能
  • 【Hot100】LeetCode—4. 寻找两个正序数组的中位数
  • 简单易懂的变动率指标ROC,做短线的快来了解一下
  • 超链接/表格/表单的复习(课后作业)
  • 蓝桥杯DS18B20程序源码
  • 【数据结构】4——树和森林
  • Mastering openFrameworks_第十一章_网络
  • 身份识别与服装类型检测系统源码分享
  • 基于微信小程序图书馆自习室座位预约小程序
  • USB组合设备——串口+鼠标+键盘
  • WPS生成目录
  • OpengGL教程(六)---坐标的变换和坐标系的变换
  • 文献多\bibliographystyle和文献少\begin{thebibliography}
  • 【JAVA】数据脱敏技术(对称加密算法、非对称加密算法、哈希算法、消息认证码(MAC)算法、密钥交换算法)使用方法
  • JUC学习笔记(二)
  • sed编辑器与awk的用法
  • 0917np.power()
  • 径向基函数神经网络RBFNN案例实操
  • 人工智能GPT____豆包使用的一些初步探索步骤 体验不一样的工作
  • 3GPP祝大家中秋快乐!!!
  • 数据结构,栈,队列(线性表实现)
  • 云服务与虚拟主机:数字时代的网络托管选择
  • 光华里社区“电亮生活”行动:智能科技携手志愿温情,老旧小区焕发新生机
  • 在docker环境下启动php的注意事项-docker完整挂载php目录、在Docker查看容器完整启动命令以及mysql ERROR 2059问题