面试题24:反转链表 题目描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点 链表结构 问题分析 头插法是反转链表非常经典的一种手段,这里演示一下吧,毕竟这个在JDK源码中也能遇见。 核心代码如下: 这些图示来自我这篇文章的 "单链表逆置:头插法图解" ,实现方面是用C语言 ...
分类:
其他好文 时间:
2020-01-31 20:52:20
阅读次数:
74
#include<iostream> using namespace std; const int N = 100010; int value[N],ne[N]; int head,idx; //初始化链表 void init(){ head = -1; idx = 0; } //删除第K个数后面的 ...
分类:
编程语言 时间:
2020-01-31 00:41:40
阅读次数:
69
复杂的链式存储结构 循环链表 定义:是一种头尾相接的链表(即表中最后一个结点的指针域指向头结点,整个链表形成一个环) 优点:从表中任一节点出发均可找到表中其他结点 注意:涉及遍历操作时,终止条件是判断 p->next == L? 双向链表 定义:在单链表的每个结点离再增加一个指向直接前驱的指针域 p ...
分类:
其他好文 时间:
2020-01-30 19:33:15
阅读次数:
140
给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5) 由于链表中从高位到低位存放了数字的二进制表示, ...
分类:
其他好文 时间:
2020-01-30 17:37:04
阅读次数:
66
第一篇 "终结Linked List(一)" 、 "终结Linked List(二)" 主要讲了单链表的基础知识,接下来的第二篇主要讲一些比较经典的问题。 一、 给一个单链表和一个整数,返回这个整数在链表中出现了多少次。 也可以用 循环实现。 二、 给一个单链表和一个index,返回index位置上 ...
分类:
其他好文 时间:
2020-01-26 17:38:28
阅读次数:
85
给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5) 来源:力扣(LeetCode)链接:ht ...
分类:
其他好文 时间:
2020-01-26 13:12:57
阅读次数:
97
题目描述:反转一个单链表。示例:输入: 1 2 3 4 5 NULL输出: 5 4 3 2 1 NULL迭代解法/ Definition?for?singly linked?list.public?class?ListNode?{ int?val; ListNode?next; ListNode(i ...
分类:
编程语言 时间:
2020-01-25 12:57:23
阅读次数:
78
题目描述: 反转一个单链表。 示例: 输入: 1 2 3 4 5 NULL 输出: 5 4 3 2 1 NULL 迭代解法 对代码进行解释: 1、准备两个空节pre和next点进行后续的操作,其中pre保存head之前的节点、next做临时变量; 2、如果head不空便进入循环体,转3;否则退出循环 ...
分类:
编程语言 时间:
2020-01-24 09:30:08
阅读次数:
78
题目来源与力扣,传送门在这里。 众所周知,链表是很重要的一种数据结构,但同时也很容易出错,二狗在重温这部分内容时被人指点了一些典型的题目,顺手去leetCode刷了一些,记录如下。 《206.单链表反转》(https://leetcode-cn.com/problems/reverse-linked ...
分类:
其他好文 时间:
2020-01-24 00:26:21
阅读次数:
77