当前位置:   article > 正文

【代码随想录_Day3】203.移除链表元素 、707.设计链表 和 206.反转链表

【代码随想录_Day3】203.移除链表元素 、707.设计链表 和 206.反转链表

以下是今日份的总结

203.移除链表元素
707.设计链表
206.反转链表

203 将删除节点的前置节点的next指向当前节点的next,再将要删除节点内存释放即为删除节点;

707 先要补全链表的数据结构,然后声明size和dennyhead两个私有变量,用于虚拟头节点和长度统计;

206 反转使用双指针不停的交换当前节点的next,将它指向前序的节点,然后遍历并重复上述操作。

这一次链表的内容非常的简单易懂,就是相关操作的书写比较绕,做好是在纸上画一下图,整理一下思路,不然会混乱^ _ ^

移除链表元素

思路:

遍历链表然后删除对应val的节点

值得注意的是

遍历的时候是指针的移动,通常判断条件是指针指向NULL时终止

    ListNode* removeElements(ListNode* head, int val) {
        ListNode* dummyHead = new ListNode(0); // 设置一个虚拟头结点
        dummyHead->next = head; // 将虚拟头结点指向head,这样方便后面做删除操作
        ListNode* cur = dummyHead;//遍历指针指向虚拟头节点
        while (cur->next != NULL) {//循环至链表末尾
            if(cur->next->val == val) {//寻找==val的节点
                ListNode* tmp = cur->next;//标记当前节点
                cur->next = cur->next->next;//将next
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/920461
推荐阅读
相关标签