牛客444617693号
牛客444617693号
全部文章
未归档
读书笔记(1)
题解(3)
归档
标签
去牛客网
登录
/
注册
牛客444617693号的博客
全部文章
/ 未归档
(共6篇)
写一个回文链表
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 解题思路:快慢指针将链表的后半部分反转(修改链表结构),然后将前半部分和后半部分进行比较。比较完成后我们应该将链表恢复原样。整个流程可以分为以下五个步骤: 1. 找到前半部分...
2021-08-30
0
476
二叉树的先,中,后序遍历
先历序遍思路:1.访问根节点;2.访问当前节点的左子树;3.若当前节点无左子树,则访问当前节点的右子树;即考察到一个节点后,即刻输出该节点的值,并继续遍历其左右子树。(根左右)中历序遍思路:1.访问当前节点的左子树;2.访问根节点;3.访问当前节点的右子树。即考察到一个节点后,将其暂存,遍历完左子树...
2021-07-23
1
571
实现两个有序链表的合并
思路一:非递归两个链表是排序过的,所以我们只需要同时遍历两个链表,比较链表元素的大小,将小的连接到新的链表中即可。最后,可能有一个链表会先遍历完,此时,我们直接将另一个链表连接到新链表的最后即可。 struct listnode* merge_list(struct listnode* H1,str...
2021-07-22
0
557
如何找出链表的倒数第K个元素?
思路:设置两个快慢指针former、later,先让快指针走k步,然后两个指针同步走,当快指针走到头时,慢指针就是链表倒数第k个节点。 struct listnode* get_k_end(struct listnode* H,int k) { struct listnode* former...
2021-07-22
0
523
删除单链表中的重复节点,并保留最开始出现的节点
思路:定义两个指针cur和p来逐个遍历链表,cur元素依次和p比较,直到p为NULL,cur向后移动一个。 struct listnode* delete_double_node(struct listnode* H) { if(H==NULL) return NULL; //判断是否需要...
2021-07-22
0
512
字符串倒序
写一个字符串的反转实现方法:方法1:通过位置交换实现反转#include <stdio.h>#include <string.h> int main(int argc, const char *argv[]){ char src[]="hello,world&...
2021-07-20
0
432