刷题笔记2022.2.25链表

刷题笔记2022.2.25

  1. 链表,双指针。不会指针用数组做也可,->把链表拷贝到数组中。vector.back()意思是返回数组中末尾的元素。注意输出的是节点,就是list node*类型的。快慢指针法也挺简单的,就是一个速度是1,一个是2,2的走完了1的在中间那。
  2. 删除链表倒数第n个节点。我试了先转移到vector里再删除的方法,但是总编译出错。不太敢用链表做,笑死,其实就是不会。复习一下链表的各种用法。

方法一:计算链表长度

我们首先从头节点开始对链表进行一次遍历,得到链表的长度 LL。随后我们再从头节点开始对链表进行一次遍历,当遍历到第 L-n+1L−n+1 个节点时,它就是我们需要删除的节点。

好像不管什么做法都没有直接使用head当头节点,都是再新建一个用head表示

初始化一个空节点,初始赋值为0,并且list的下一个next指针指向head,指针指向为list:ListNode list = new ListNode(0,head);dummy是创建的头节点。

方法二:双指针

初始时first 和second 均指向头节点。我们首先使用first 对链表进行遍历,遍历的次数为n。此时,first 和second 之间间隔了n−1 个节点,即first 比 second 超前了 n个节点。

在这之后,我们同时使用 first 和second 对链表进行遍历。当first 遍历到链表的末尾(即first 为空指针)时,second 恰好指向倒数第 n 个节点。

再改变一点,让second从头节点开始遍历,就能正好删除了。挺简单的,我感觉自己已经学会了,注意有的句子的顺序:

 second->next=second->next->next;

 ListNode* ans=dummy->next;

  1. 判断数独的有效性:好吧矩阵我不熟哈希表也不会。

好像就是9*9的表格内每个元素都按三条标准去筛选思路不难,完善难

char(c-'0')后得到的是一个ascii码为1的字符。

int index=c-'0'-1;//asci码这里很巧。

  1. 矩阵有0,行列全变0.我试着做了能执行但提交有错,堆栈溢出。知道为啥了,列那里不可以用martix[1],因为不一定有1,要用0.我做出来了。

      

  1. 链表,双指针。不会指针用数组做也可,->把链表拷贝到数组中。vector.back()意思是返回数组中末尾的元素。注意输出的是节点,就是list node*类型的。快慢指针法也挺简单的,就是一个速度是1,一个是2,2的走完了1的在中间那。
  2. 删除链表倒数第n个节点。我试了先转移到vector里再删除的方法,但是总编译出错。不太敢用链表做,笑死,其实就是不会。复习一下链表的各种用法。

方法一:计算链表长度

我们首先从头节点开始对链表进行一次遍历,得到链表的长度 LL。随后我们再从头节点开始对链表进行一次遍历,当遍历到第 L-n+1L−n+1 个节点时,它就是我们需要删除的节点。

好像不管什么做法都没有直接使用head当头节点,都是再新建一个用head表示

初始化一个空节点,初始赋值为0,并且list的下一个next指针指向head,指针指向为list:ListNode list = new ListNode(0,head);dummy是创建的头节点。

方法二:双指针

初始时first 和second 均指向头节点。我们首先使用first 对链表进行遍历,遍历的次数为n。此时,first 和second 之间间隔了n−1 个节点,即first 比 second 超前了 n个节点。

在这之后,我们同时使用 first 和second 对链表进行遍历。当first 遍历到链表的末尾(即first 为空指针)时,second 恰好指向倒数第 n 个节点。

再改变一点,让second从头节点开始遍历,就能正好删除了。挺简单的,我感觉自己已经学会了,注意有的句子的顺序:

 second->next=second->next->next;

 ListNode* ans=dummy->next;

  1. 判断数独的有效性:好吧矩阵我不熟哈希表也不会。

好像就是9*9的表格内每个元素都按三条标准去筛选思路不难,完善难

char(c-'0')后得到的是一个ascii码为1的字符。

int index=c-'0'-1;//asci码这里很巧。

      

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值