28. 奇偶链表

题目:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性
解法:双指针
代码:
/**

  • Definition for singly-linked list.
  • public class ListNode {
  • int val;
    
  • ListNode next;
    
  • ListNode() {}
    
  • ListNode(int val) { this.val = val; }
    
  • ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    
  • }
    */
    class Solution {
    public ListNode oddEvenList(ListNode head) {
    if(headnull){
    return null;
    }
    if(head.next
    null||head.next.next==null){
    return head;
    }
    ListNode p1=head,p2=head.next,q=head.next;
    while(p2!=null&&p2.next!=null){
    p1.next = p2.next;
    p1 = p2.next;
    p2.next = p1.next;
    p2 = p1.next;
    }
    p1.next = q;
    return head;
    }
    }
    注意:循环结束条件及结束后的处理需要认真考虑
posted @ 2020-11-13 11:07  for_ward  阅读(69)  评论(0)    收藏  举报