题解 | #链表的奇偶重排#
链表的奇偶重排
https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ public ListNode oddEvenList (ListNode head) { //分别创建一个存奇数位的头节点和一个存偶数位的头节点 ListNode odd=new ListNode(0); ListNode even=new ListNode(0); //分别为两个头节点创建一个前驱 ListNode odd_pre=odd; ListNode even_pre=even; int i=1; //遍历链表,分别存奇数位和偶数位的节点 while(head!=null){ if(i%2==0){ even_pre.next=new ListNode(head.val); even_pre=even_pre.next; }else{ odd_pre.next=new ListNode(head.val); odd_pre=odd_pre.next; } head=head.next; i++; } //奇数链表和偶数链表相连接 odd_pre.next=even.next; return odd.next; } }