zoukankan      html  css  js  c++  java
  • 【数据结构与算法】链表——奇偶链表

    奇偶链表

    LeetCode:奇偶链表

    题目描述:

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

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

    示例:

    输入: 2->1->3->5->6->4->7->NULL 
    输出: 2->3->6->7->1->5->4->NULL
    

    思想:

    第一次写的方法是在遍历时使用一个flag注明奇偶,这样太蠢了。使用双指针比较直观,如下方代码

    代码:

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode oddEvenList(ListNode head) {
            if(head==null||head.next==null)
                return head;
            ListNode m=head.next,n=m;
            ListNode p=head;
            while(n!=null&&n.next!=null){
                p.next = p.next.next;
                n.next = n.next.next;
                p=p.next;
                n=n.next;
            }
            p.next=m;
            return head;
        }
    }
    
  • 相关阅读:
    python函数内容
    python读写csv文件
    python正则表达式
    python使用MYSQL数据库
    python简单面试题
    python执行cmd命令
    python详解json模块
    我的自动化测试之路
    测试开发这一年
    招聘测试人员,我在面试什么?
  • 原文地址:https://www.cnblogs.com/buptleida/p/12698206.html
Copyright © 2011-2022 走看看