Skip to content

Latest commit

 

History

History
12 lines (7 loc) · 1.01 KB

README.md

File metadata and controls

12 lines (7 loc) · 1.01 KB

题目

将链表偶数位置的节点串成链表,移动到奇数位置节点组成的链表后

解答

使用两个指针oddlist和evenlist指向奇数链表和偶数链表的表头节点。然后使用一个指针p1遍历原链表,每次将一个节点指向它的下下个节点,从而将奇数链表和偶数链表拆开

p1最后会执行原链表的最后一个结尾,这个节点可能是奇数链表的尾节点,也可能是偶数链表的尾节点。因此可以使用一个int变量odd做状态记录,通过odd判断p1是奇数链表的尾节点还是偶数链表的尾节点:

  • 如果是奇数链表的尾节点,那么将这个节点的下一个节点设为偶数链表的头结点,处理完成
  • 如果是偶数链表的尾节点,那么没有办法访问奇数链表的尾节点,因此使用另外一个指针p2,p2步伐p1慢,每次p1前移之前更新p2,因此在这种情况下p2指向奇数链表的尾节点,将其下一个节点设为偶数链表的头结点来完成处理