引言 上文笔者描述了单链表的基本操作,但尾插法在单链表中效率太低,我们可以对单链表进行简单的变形,提高尾端插入元素等操作的效率。 单向循环链表 单向循环链表只需要将普通的单链表首尾相连即可实现。 Python实现: class ListNode(): def __init__(self, val, ...
分类:
其他好文 时间:
2020-11-12 13:33:29
阅读次数:
6
1. 题目描述 2. 代码 1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, val=0, next=None): 4 # self.val = val 5 # self.next = ...
分类:
其他好文 时间:
2020-11-11 16:47:05
阅读次数:
24
题目连接 82. 删除排序链表中的重复元素 II 题目思路 这个题要求我们把所有重复出现的元素都删除,与前面的题目不一样的是这里不要求保留其中一个。 在看示例的时候发现如果连续出现两个重复元素的话,正常的双指针会出现重复元素。 那么我们要进行判断 当前位置是重复元素 当前位置元素只出现一次 对于第二 ...
分类:
编程语言 时间:
2020-11-11 16:44:19
阅读次数:
15
题目连接 92. 反转链表 II 题目分析 题目要求我们用一趟扫描完成旋转,我们只需要先把[m,n]这段区间内的链表定位了就容易做了。当我们完成定位后就是普通的三指针反转链表 代码实现 /** * Definition for singly-linked list. * public class L ...
分类:
其他好文 时间:
2020-11-11 16:43:05
阅读次数:
18
题目链接 链接:https://leetcode-cn.com/problems/reverse-linked-list/ 题目描述 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用 ...
分类:
其他好文 时间:
2020-11-11 16:33:27
阅读次数:
7
题目描述:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 O(nlogn)的时间复杂度第一时间就是归并排序了,然后要常数级空间,那就不能用递归。 原地归并 public ListNode sortList(ListNode head) { //如果只有一个节点直接返回 i ...
分类:
编程语言 时间:
2020-11-11 15:53:14
阅读次数:
6
题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 思路1 链表可以创建一个头结点来辅助解题,再创建一个指针指向头结点(该指针是把链表连起来用的), ...
分类:
其他好文 时间:
2020-11-11 15:43:06
阅读次数:
6
#include <stdio.h> #include <stdlib.h> typedef struct node {int x; struct node *next; }NODE; NODE *padd(NODE *pa) { NODE *p1,*p2,*p; p1=p2=pa; while(p ...
分类:
其他好文 时间:
2020-11-10 11:42:48
阅读次数:
24
class Solution { public ListNode swapPairs(ListNode head) { ListNode dummy = new ListNode(-1); ListNode p = dummy; dummy.next = head; while(p != null ...
分类:
其他好文 时间:
2020-11-10 11:12:58
阅读次数:
4
20192304 2020-2021-1 《数据结构与面向对象程序设计》实验五报告 课程:《程序设计与数据结构》 班级: 1923 姓名: 刘润衡 学号:20192304 实验教师:王志强 实验日期:2020年11月5日 必修/选修: 必修 1.实验内容 (1)通过键盘输入一些整数,建立一个链表(1 ...
分类:
其他好文 时间:
2020-11-10 10:55:48
阅读次数:
4