zoukankan      html  css  js  c++  java
  • Odd Even Linked List

    Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.

    You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity.

    Example:
    Given 1->2->3->4->5->NULL,
    return 1->3->5->2->4->NULL.

    一个指针记录奇数的结尾,一个指针记录偶数的开头,一个指针记录偶数的末尾。

    奇数的结尾的next,指向偶数的开头,偶数的结尾的next是下一个奇数,奇数的next是下一个偶数

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public ListNode oddEvenList(ListNode head) {
            if (head == null || head.next == null || head.next.next == null) {
    			return head;
    		}
    		ListNode p = head.next;
    		ListNode oddTail = head;
    		ListNode evenHead = head.next;
    		ListNode preEven;
    		while (true) {
    			if (p.next == null) {
    				break;
    			}
    			preEven = p;
    			p = p.next;
    			oddTail.next = p;
    			ListNode nextEven = p.next;
    			oddTail = p;
    			p.next = evenHead;
    			preEven.next = nextEven;
    			p = nextEven;
    			if (p == null) {
    				break;
    			}
    		}
    		return head;
        }
    }
    

      

  • 相关阅读:
    Python中把数据存入csv文件
    Python中把字典和值取出来
    scrapy输出请求状态码
    scrapy发送post请求获取cookie
    Python3 Unicode转中文
    Quartus13.0破解方法
    元音字母A的发音规则
    位bit——字节Byte???
    曾经的小孩在努力奔跑!
    如何看懂的时序图?
  • 原文地址:https://www.cnblogs.com/23lalala/p/5139663.html
Copyright © 2011-2022 走看看