- 博客(6)
- 收藏
- 关注
原创 递归链表的头节点不是空节点的讨厌题目
leetcode的链表总是不给空白的头节点,这使得第一个元素的处理方式总是与后面节点的处理方式不同,为了处理这种问题,要么利用全局变量来判断此时是否在处理头节点,要么找到一种头节点与后面节点处理方式相同的方式,例如《两两反转链表元素这道题》,《删除排序链表中的重复元素》这两道题。我胡乱总结一下我感性的认识,就是一边都是把自己当作上一个节点next值来写递归函数,如。这样子就可以优雅的解决这种讨厌的出题。
2024-09-01 20:09:57
151
原创 大学生暑假做leetcode234回文链表
这个代码比较幽默,有三个外部变量,分别是储存节点的,储存头节点的,储存失败与成功标志的,【苦笑】先试试吧;判断失败与否标识符改为true,返回;//当前面执行完的时候,链表已经递归到了最后一层,接下来的程序都时返回时执行的操作。这道题特殊的一点是需要有一个函数外的全局变量,在函数递归的过程中与函数进行比较,if(当前节点的值不等与外部节点的值){如果这是头节点,就把外部变量定义为头节点。if(当前节点不是尾节点),{向下递归}标记失败,然后返回;if(当前节点与外部的节点值相同){判断匹配失败的标志符号{
2024-08-01 11:29:09
314
原创 大学生暑假记录写leetcode206
这道题的递归我一直无法处理的点是把新的头节点给return回来,就是我在程序递归到链表尾部的时候,怎么在返回过程中执行操作,题解的方法就是弄一个临时变量t,t的值是由递归得到的,然后写返回过程中需要执行的操作,当前节点的next的next调整为自己;返回尾节点的地址(也就是自己的地址);然后往前回溯,回溯到的每一位把自己的next指向自己,来实现倒序的目的,//这里是递归向深度进行时执行的操作。//这里是递归向表层进行时执行的操作。直接循环写很简单,头插法就可以了,尝试写一下递归。递归出口是执行到尾节点;
2024-07-30 15:20:23
195
原创 大学生暑假写leetcode237
题干的意思其实是让你把这个节点的数据删掉,然后把后面的节点值依次补位上来;没有第二版了,这破题目就是阅读理解;
2024-07-29 17:14:43
135
原创 大学生记录刷leetcode203移除链表元素
对于不等于val的节点,首先用这个函数继续找到它的next,其次要把自己的地址返回给 上一个来做上一个的next;要考虑空链表的情况,还有最前面的元素要处理好,每次删除节点时要考虑是不是最后一个节点,改了半天写了第一版,用循环。首先每个递归的函数要解决的问题是判读自己的head是否等于val{对于等于val的节点,要让递归直接进入到下一重;但debug半天,搞得我头疼,还冲了一个leetcode会员,哎,好贵。查看题解之后,尝试一下用递归解决这个问题;
2024-07-29 12:01:27
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1