zoukankan      html  css  js  c++  java
  • 328.奇偶链表

    1.题目描述:

      给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

      请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。

    2.解题思路及代码:

      生成一个奇链表,一个偶链表,链接二者。

      

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode oddEvenList(ListNode head) {
    11         if(head==null)
    12             return null;
    13         ListNode odd=head;
    14         ListNode even=head.next;
    15         ListNode evenH=head.next;
    16         while(even!=null && even.next!=null){//注意,这里判断条件只能用even指针,若用odd指针,当链表节点数为偶数时会出现空指针错误
    17             odd.next=even.next;
    18             odd=odd.next;
    19             even.next=odd.next;
    20             even=even.next;
    21         }
    22         odd.next=evenH;
    23         return head;
    24     }
    25 }
  • 相关阅读:
    一个网站架构的变迁
    网络编程
    http协议篇
    第1篇 编程能力是什么
    django中的cookies和session机制
    django的认证与授权系统
    python的异常处理
    第0篇
    mysql优化和全局管理杂记
    k8s中pod的资源配置详解
  • 原文地址:https://www.cnblogs.com/teensSpirit-code-life/p/11755943.html
Copyright © 2011-2022 走看看