【Leetcode】2487. 从链表中移除节点
2024-01-03 08:44:32
题目
思路
1、递归移除节点:
- 如果头节点为空,直接返回空。
- 递归调用函数处理下一个节点 head->next。
- 在递归返回后,判断当前节点的值是否小于之前记录的最大值 maxVal。
- 如果小于 maxVal,说明需要移除当前节点,返回下一个节点 head->next,即跳过当前节点。
- 如果不小于 maxVal,更新 maxVal 为当前节点值的最大值。
最后返回当前节点。
2、返回处理后的头节点:
- 在递归中不断更新链表,返回处理后的头节点。
代码
class Solution {
private:
int maxVal = 0;
public:
ListNode* removeNodes(ListNode* head) {
if(head == nullptr) return head;
head->next = removeNodes(head->next);
if(head->val < maxVal) return head->next;
maxVal = max(head->val, maxVal);
return head;
}
};
文章来源:https://blog.csdn.net/m0_67724631/article/details/135352865
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!