138 奇偶链表

发布时间:2024年01月22日

问题描述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和欧树节点指的是节点编号的奇偶性,而不是节点的值的就行。请尝试使用原地算大完成,你的空间复杂度应该为O(1),时间复杂度为O(nodes),nodes为节点总数。

思路求解:定义奇链表的头指针和偶数链表的头指针,奇数链表的头指针就是该链表的头指针,而偶数链表的头指针为root.next,在定义两个指针进行不停地往下走,寻找奇数节点和偶数节点,最后将两个链表连接起来即可;

public ListNode oddOrEven(ListNode root)
{
ListNode odd=root;
ListNode even=root.next;
ListNode oddMove=root;
ListNode evenMove=root.next;
while(oddMove!=null&&evenMove!=null)
{
oddMove.next=evenMove.next;
evenMove=oddMove.next;
}
oddMove.next=null;
evenMove.next=null;
oddMove.next=even;
???????return odd;
}

文章来源:https://blog.csdn.net/qq_52299902/article/details/135742007
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。