首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在Leet代码上尝试奇数甚至链表编程问题,我是leetcode,所以我无法确定这个错误是关于什么的

我在Leet代码上尝试奇数甚至链表编程问题,我是leetcode,所以我无法确定这个错误是关于什么的
EN

Stack Overflow用户
提问于 2021-04-16 16:25:43
回答 2查看 50关注 0票数 0

这是我的代码

代码语言:javascript
复制
class Solution {
public:
    ListNode* oddEvenList(ListNode* head) {
        ListNode* odd=head;
        ListNode* even=odd->next;
        ListNode* evenStart = even;
        
        while(odd->next!=NULL &&  even->next!=NULL)
        {
            odd->next = even->next;
            odd=odd->next;
            even=odd->next;
            even=even->next;
        }
        
        odd->next=evenStart;
        
        return head;
    }
};

并显示错误Line 18: Char 41: runtime error: member access within null pointer of type 'ListNode' (solution.cpp) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:27:41

看一下这个屏幕截图

EN

回答 2

Stack Overflow用户

发布于 2021-04-16 17:00:12

错误:您正在尝试访问类型为ListNode的空指针的“next”数据成员。解决方案:您应该检查if(even!=NULL) then条件(even->next)例如1,2,3,4次迭代:

  1. odd -> 1,odd -> next -> 2,even -> 2,even -> next -> 3
  2. odd -> 3,odd->next -> 4,even -> NULL now if check odd->next!=NULL is true但even->next将抛出错误。
票数 0
EN

Stack Overflow用户

发布于 2021-04-16 17:19:24

您的前几行假设列表至少有两个元素。

这是你的第一个问题。

如果您解决了这个问题,请注意,当您进入循环体时,您所知道的就是该odd->next!=NULL && even->next!=NULL

在第一次迭代中,这意味着列表至少有三个元素。

让我们画一个列表,看看会发生什么。

"o“和"e”是oddeven,大括号是列表中可能不存在的未知部分的边界:

代码语言:javascript
复制
1 -> 2 -> 3 -> { 4 -> 5 -> 6 ...
o    e

odd->next = even->next

+---------+
|         V
1    2 -> 3 -> { 4 -> 5 -> 6 ...
o    e

odd = odd->next

+---------+
|         V
1    2 -> 3 -> { 4 -> 5 -> 6 ...
     e    o         

even = odd->next

+---------+
|         V
1    2 -> 3 -> { 4 -> 5 -> 6 ...
          o      e

哦..。

代码语言:javascript
复制
even = even->next

+---------+
|         V
1    2 -> 3 -> { 4 -> 5 -> 6 ...
          o           e

两次啊。

首先用笔(笔)和纸解决方案。

到目前为止,这是解决(和调试)指针操作问题的最佳方法。

我不会给你一个解决方案,因为那会有多有趣?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67121668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档