12 2023 档案
摘要:二叉树面试题解析 判断相同的树 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * Tre
阅读全文
摘要:1. 树的基本概念 与数组链表不同,树是一种非线性的存储结构,它由n (n>=0) 个节点构成 并具有层次关系的存储结构 把这个存储结构叫做树 是因为它看上去像一颗倒挂着的树,只是根在上 叶子在下 它有以下特性: 1. 有一个特殊的结点,称为根结点,根结点没有前驱结点 2. 树是由若干不相交的子树组
阅读全文
摘要:1. 队列概念及结构 队列一种先进先出的数据结构, 先入队列的数据先出队列 单链表能实现队列 ? 所以以原来的单链表无法用来实现队列, 如何修改 ? 只需再加个last引用指向尾,这样尾插入队操作复杂度就能达到O(1) 但是需要注意: 这种结构的单链表只能头插实现出队 尾插实现入队, 不能头插实现入
阅读全文
摘要:1. 栈的概念及实现 栈是一种先进后出的数据结构,先进后出是指最先入栈的数据最后出栈,最后入栈的数据最先出栈, 如下图 栈的实现: https://github.com/znxcmakhsd/DS/tree/main/12-18/MyStack 这个栈的实现底层用数组存储数据 栈也可以用单链表或者是
阅读全文
摘要:1. 链表概念 使用数组存储数据的缺陷: 插入和删除需要移动数据 复杂度为O(N) 不好 那么,是否有一种存储结构 可以在插入删除数据时不需要移动数据 ? 答案是链表 什么是链表 ? 链表是一种在逻辑上连续存储 但是在物理上(内存空间)中不一定连续的存储结构, 如下图 链表中的每一个元素都是一个节点
阅读全文
摘要:链表面试题解析 1. 删除链表中=val的所有节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(in
阅读全文
摘要:1. 顺序表概念 什么是顺序表 ? 顺序表是一种新的数据类型,它使用一段物理地址连续的存储单元依次存储数据元素(数组实现),并具有操作(增删查改)这个数组的方法 数组也是使用连续的地址空间存储数据,那么数组和顺序表有什么区别 ? 数组是一个连续地址依次存储数据的简单结构, 而顺序表只是使用数组这个结
阅读全文
摘要:1. 了解包装类 什么是包装类 ? 包装类是java提供的类 每一个基本类型都有对应的包装类 基本类型 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean B
阅读全文