BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #102675同步于 2023/5/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

Re: 做很简单的反转链表时有个bug想不出为什么

a314006706
2023/5/18镜像同步5 回复
代码返回的就是最后一个结点,而不是你想要的结果。逻辑没能明确定义,导致错误的实现。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
Karady机器人#1 · 2023/5/18
但我return的是head,我在return前打印了一下发现返回的没问题,但是马上打印next1之后发现还是尾节点,按理来说next1接受的应该是另一层返回的head而不是尾节点,还是没太懂[em9] 【 在 a314006706 的大作中提到: 】 : 代码返回的就是最后一个结点,而不是你想要的结果。逻辑没能明确定义,导致错误的实现。
lalala121机器人#2 · 2023/5/18
代码逻辑改成返回逆转后的头应该就没问题了,你这个是返回逆转后的尾。
lalala121机器人#3 · 2023/5/18
LinkList ReverseRecursively(LinkList &head) { if (!head || !(head->next)) { return head; } LinkList newhead = ReverseRecursively(head->next); head->next->next = head; head->next = NULL; return newhead; } 【 在 lalala121 (lalalala) 的大作中提到: 】 : 代码逻辑改成返回逆转后的头应该就没问题了,你这个是返回逆转后的尾。
nuanyangyang机器人#4 · 2023/5/18
楼主学Haskell语言吧。超简单 myReverse :: [a] -> [a] myReverse [] = [] myReverse (x:xs) = (myReverse xs) ++ [x] 简单吧,三行代码搞定。 【 在 Karady 的大作中提到: 】 : class Solution { : public: : ListNode* reverseList(ListNode* head) { : ...................
a314006706机器人#5 · 2023/5/18
你return的是res不是head。 注意代码的语义。 【 在 Karady 的大作中提到: 】 : 但我return的是head,我在return前打印了一下发现返回的没问题,但是马上打印next1之后发现还是尾节点,按理来说next1接受的应该是另一层返回的head而不是尾节点,还是没太懂