bool upsidedown_list(LinkList L) { Lnode *head, *tmp, *oldhead; head = L; tmp = L->next; oldhead = L; while (tmp) { oldhead->next = tmp->next; tmp->ne ...
分类:
编程语言 时间:
2021-04-22 15:16:52
阅读次数:
0
方法一:双指针法 采用就地反转,不用额外开辟空间 注意:接收链表的head节点,返回当前节点 方法二:递归法 代码如下: class Node(object): def __init__(self, item, next=None): self.item = item self.next = nex ...
分类:
其他好文 时间:
2021-04-21 12:23:41
阅读次数:
0
#题 25:合并两个排序的链表 ##题干 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。——《剑指 Offer》P145 ##测试样例 链表的数据结构定义如下(Python): class ListNode: def __init__(self, x): self.v ...
分类:
编程语言 时间:
2021-04-20 15:40:06
阅读次数:
0
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 进阶: 你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点 ...
分类:
其他好文 时间:
2021-04-19 15:23:58
阅读次数:
0
数组 1、数组中的数据类型是一致的; 2、数组元素在内存中是连续的; 3、数组中每个元素占用空间大小是相同的(length); 4、数组元素存放的是数据的地址的值。 5、查找数组中第i个元素,首个元素的地址address + (i * length),时间复杂度为O(1); 特点: 1、大小固定 2 ...
分类:
编程语言 时间:
2021-04-15 12:32:35
阅读次数:
0
在给定插入位置的前提下,给定结点插入操作,只要局部修改结点的链域即可。 插在表头: 假设已存在一个以 head 为首指针的链表,新插入的结点 “陈” 已经创建完毕,用 p指针 指示。 使结点 “张” 作为结点 “陈” 的后继结点,然后执行 head = p;修改表头指针 head 使其指向新的头结点 ...
分类:
其他好文 时间:
2021-04-15 12:10:37
阅读次数:
0
给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2: 给定链表 1->2- ...
分类:
其他好文 时间:
2021-04-14 12:38:20
阅读次数:
0
对于链表添加操作,假如不考虑按序号添加,则可以写一个简单的方法: public void add(HeroNode heroNode) { //因为head节点不能动,因此我们需要一个辅助变量遍历 HeroNode temp = head; //遍历链表,找到最后 while (true) { // ...
分类:
其他好文 时间:
2021-04-14 12:35:54
阅读次数:
0
1. 翻转二叉树:https://leetcode-cn.com/problems/invert-binary-tree/ 2. 二叉树展开为链表,关键在于找到递归部分:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-li ...
分类:
其他好文 时间:
2021-04-13 12:42:14
阅读次数:
0
链表-快慢指针结束条件总结 步长为2:fast = fast.next.next; 步长为1:fast = fast.next; 步长为2+while(fast!=null&&fast.next!=null) 终止条件为: fast==null或者fast.next==null 最终fast有可能为 ...
分类:
其他好文 时间:
2021-04-12 12:33:43
阅读次数:
0