AI大模型架构师必学指南:从知识储备到高薪前景,一篇收藏就够了!
2026/1/8 21:49:59
原地重排链表:
odd.next=even.next:跳过偶数,把下一个奇数连起来
even.next=odd.next:跳过奇数,把下一个偶数连起来
最后把奇数链尾接回 evenHead
/** * 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; } * } */classSolution{publicListNodeoddEvenList(ListNodehead){//如果是空链表,直接返回if(head==null){returnhead;}ListNodeevenHead=head.next;//2ListNodeodd=head;//1ListNodeeven=evenHead;//2while(even!=null&&even.next!=null){//1、2、3、4、5//奇数的下一位指向相邻偶数的下一位odd.next=even.next;//第一轮:[1,3]//第二轮:[1,3,5]odd=odd.next;//第一轮:存放临时变量3, odd 指针前进到新的尾部[3]//第二轮:存放临时变量5,odd指针前进到新的尾部[5]even.next=odd.next;//第一轮:[2,4]//第二轮:[null]even=even.next;//第一轮:存放临时变量4, 指针前进到新的尾部[4]//第二轮:[null],跳出循环}// 把奇数链尾接上偶数链头[5->2]odd.next=evenHead;returnhead;}}