js单链表奇数排在偶数前
时间: 2023-08-14 14:06:28 浏览: 98
可以使用双指针法来实现将单链表中的奇数排在偶数前面。具体实现过程如下:
1. 定义两个指针:一个指向奇数节点的链表头部,一个指向偶数节点的链表头部。
2. 遍历链表,将奇数节点插入到奇数链表的末尾,偶数节点插入到偶数链表的末尾。
3. 将奇数链表的尾节点指向偶数链表的头节点,即将两个链表合并。
4. 返回新的链表头节点,即为奇数排在偶数前的单链表。
以下是 JavaScript 代码实现:
```javascript
function oddEvenList(head) {
if (!head || !head.next) return head; // 如果链表为空或只有一个节点,则直接返回原链表
let odd = head; // 奇数链表头部
let even = head.next; // 偶数链表头部
let evenHead = even; // 保存偶数链表头部,用于合并链表
while (even && even.next) {
odd.next = even.next; // 将偶数链表的下一个节点插入到奇数链表的末尾
odd = odd.next; // 奇数链表指针向后移动
even.next = odd.next; // 将奇数链表的下一个节点插入到偶数链表的末尾
even = even.next; // 偶数链表指针向后移动
}
odd.next = evenHead; // 将奇数链表的尾节点指向偶数链表的头节点,合并链表
return head; // 返回新的链表头部
}
```
阅读全文