代码随想录算法训练营第三天

代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表

203.移除链表元素

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {
        while(head != NULL && head->val == val){
            head = head-> next;
        }
        ListNode * cur;
        cur = head;
        while(cur != NULL && cur->next != NULL){
            if(cur->next->val == val){
                cur->next = cur->next->next;
            }
            else{
                cur = cur->next;
            }
        }
        return head;
    }
};

总结:

  1. 对于指针类型的对象,必须使用 -> 来访问其成员;而对于非指针类型的对象,则需要使用.
  2. 注意判断条件不要只写cur != NULL,要写cur != NULL && cur->next != NULL

707.设计链表

大二刚开始学数据结构,第一节课就是写的这个。 期末考试也背了好久。不想再写了。

206.反转链表

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode * cur = head;
        ListNode * pre = NULL;
        ListNode * temp;
        while(cur != NULL){
            temp = cur -> next;
            cur -> next = pre;
            pre =cur;
            cur = temp;
        }
        return pre;
    }
};

看懂了就没啥难度。

代码随想录算法训练 文章被收录于专栏

代码随想录算法训练

全部评论

相关推荐

1. 嵌入式系统中的实时性是什么?如何评估实时系统的性能?2. 什么是嵌入式操作系统?与通用操作系统相比有什么不同?3. 在嵌入式系统中,如何实现电源管理?4. 嵌入式系统中的ADC(模数转换器)是什么?如何使用?5. 嵌入式系统中的DAC(数模转换器)是什么?有什么应用?6. 什么是嵌入式系统的调试技术?常用的调试工具有哪些?7. 在嵌入式系统中,如何进行数据存储和文件系统管理?8. 嵌入式系统中的UART(通用异步收发传输器)是什么?如何使用?9. 嵌入式系统中的SPI(串行外设接口)是什么?与I2C相比有什么优缺点?10. 在嵌入式系统中,如何处理异常和错误?11. 嵌入式系统中的网络协议栈是什么?常见的协议有哪些?12. 什么是嵌入式系统的固件(Firmware)?如何进行固件更新?13. 嵌入式系统中的安全性问题有哪些?如何进行安全设计?14. 在嵌入式开发中,如何进行单元测试和集成测试?15. 嵌入式系统中的时钟和定时器的作用是什么?16. 什么是嵌入式系统中的状态机?如何实现?17. 在嵌入式系统中,如何进行多任务处理?18. 什么是嵌入式系统中的数据结构?常用的数据结构有哪些?19. 嵌入式系统中的资源管理是什么?如何进行资源分配?20. 在嵌入式开发中,如何使用版本控制工具(如Git)?21. 嵌入式系统中的任务间通信方式有哪些?请举例说明。22. 如何在嵌入式系统中实现图形用户界面(GUI)?23. 嵌入式系统中的信号量和消息队列是什么?有什么区别?24. 什么是嵌入式Linux中的设备驱动?如何编写简单的驱动?25. 在嵌入式系统中,如何进行性能优化?26. 嵌入式系统中的测试覆盖率是什么?如何进行测量?27. 嵌入式系统中的时序分析是什么?如何进行分析?28. 在嵌入式开发中,如何进行代码复用和模块化设计?29. 嵌入式系统中的中断服务例程(ISR)是什么?如何编写?30. 如何在嵌入式系统中实现远程监控和控制?最后呢祝各位同学工作顺利,关注我分享更多面试知识,嵌入式c++的同学可以看一下大佬总结的面经  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务