题目描述: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 代码: 迭代法 /** * Definition for singly-linked list. * struc ...
分类:
其他好文 时间:
2020-07-22 11:12:33
阅读次数:
61
题目描述: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, ...
分类:
其他好文 时间:
2020-07-21 13:35:43
阅读次数:
57
简介: 在jdk1.8中,hashmap有了较大的优化,底层实现由之前的“数组+链表”改为了“数组+链表+红黑树”。jdk1.8的hashmap的数据结构如图所示,当链表节点较少时仍然以链表形式存在,当链表节点较多时(大于8)会转化为红黑树。 重要知识点: 1、文章中头节点指的是table表上索引位 ...
分类:
其他好文 时间:
2020-07-21 09:30:18
阅读次数:
68
一、什么是循环双链表 从上一节我们看出循环单链表是尾节点指针指向头节点,那么以此类推,我们的循环双链表就是头节点的prior指针指向尾节点。所以我们在判断循环双链表是否为空时就是其prior和next同时指向一个节点就为空。 循环双链表的结构: typedef struct CDLinkNode { ...
分类:
其他好文 时间:
2020-07-12 18:39:29
阅读次数:
64
一、什么是循环单链表 循环单链表与单链表最本质的区别就是最后一个指针指向的节点不是NULL而是指向头节点,从而形成一个闭环。 所以我们在判断指针是否指向尾节点时候的判断条件就是他的next是否指向头节点。 循环单链表的结构: typedef struct { //定义循环单链表的节点类型 ElemT ...
分类:
其他好文 时间:
2020-07-12 18:33:37
阅读次数:
59
链表 链表是以节点的方式存储 每个节点包含data域,next域,next域指向下一个节点 链表分为:带头结点、不带头节点,根据实际需求确定 客户端 LinkedList<string> list = new LinkedList<string>(); list.Add("fan"); list.A ...
分类:
编程语言 时间:
2020-07-12 00:30:11
阅读次数:
71
原题链接 来源:剑指offer, Hulu面试题 题意很简单。给定一个单链表,反转这个单链表,返回翻转后的头节点。 方法一 借助栈的性质 要将链表翻转,很容易想到借助栈的后进先出的性质来改变链表的顺序。 将链表节点顺序压入栈中,链表节点全部进栈以后,取栈顶元素作为新链表的头节点,然后将元素不断出栈, ...
分类:
其他好文 时间:
2020-07-10 11:23:11
阅读次数:
75
题意是要删除一个排序链表里所有重复出现的数字,链表里留下的数字都是只出现一次的数字。 思路:用两个指针currentNode和nextNode扫描一遍有序链表,最开始初始化currentNode为链表的附加头节点dummy, nextNode为currentNode的下一个节点,然后不断判断next ...
分类:
编程语言 时间:
2020-07-06 12:40:20
阅读次数:
66
非递归 思路1 用两个栈实现后序遍历的步骤: 申请一个栈stack1,将头节点压入栈中 将stack1中元素弹出,记为temp,依次将temp的左孩子,右孩子压入stack1(如果有的话 每个从stack1中弹出的元素都压入stack2 4.不断重复步骤2,3直到stack1为空停止 5.从stac ...
分类:
其他好文 时间:
2020-07-04 22:33:18
阅读次数:
64
题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 通过率: 代码: var reversePrint = function(head) { let result = []; if(head==null){ ...
分类:
Web程序 时间:
2020-07-04 21:11:24
阅读次数:
80