关于leetcode上的一个翻转链表问题

来源:1-1 什么是链表

慕粉8429964

2020-08-28 17:03:38

public ListNode addEventList(ListNode head){
    if (head ==null){
        return null;
    }
    ListNode odd = head;//奇数指针
    ListNode even = head.next;//偶数指针
    ListNode evenHead = even;//偶数带头人
    while (even!=null&&even.next!=null){
        odd.next = even.next;
        odd = odd.next;
        even.next = odd.next;
        even = even.next;
    }
    odd.next = evenHead;
    return head;
}


//while循环里的几个链表赋值没搞清楚.
//odd.next = even.next  是odd指针指向even的下一个节点的位置么?还是odd指针的下一个节点指向even的下一个节点的位置
//还有odd = odd.next 是什么含义
写回答

2回答

liuyubobobo

2020-08-29

odd.next = even.next 表示的是 odd.next 指向的,和 even.next 指向一个元素。

如果链表是这样:odd->even->e

说明,odd.next 指向 even;even.next 指向 e。那么 odd.next = even.next 后,odd.next 也指向 e。


odd = odd.next 表示 odd 指向 odd.next 指向的元素。

如果链表是 1->2->3,odd 指向 1 这个节点,odd = odd->next 后,odd 就指向 2 这个节点的链表。


odd = odd.next 这个操作在我们写的链表中一直在使用,从在链表中查找元素,到添加元素。建议再把课程中讲的每一个操作里的具体逻辑再仔细看一看,想明白。


继续加油!:)


0

慕粉8429964

提问者

2020-08-28

说错了,是奇偶链表问题

0

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2638 学习 · 1091 问题

查看课程