• 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 }
  • 相关阅读:
    HDR & Bloom
    Parallax Mapping
    Normal Mapping & Tangent Space
    Gamma校正背后的原理
    内存对齐及其原理
    关于深度值的一些需要说明的点
    帧缓冲(Framebuffer)
    面剔除和深度测试
    工具·MashLab调整网格模型坐标系
    工具·notepad++正则表达式替换文本
  • 原文地址:https://www.cnblogs.com/teensSpirit-code-life/p/11755943.html
Copyright © 2020-2023  润新知