
链表
-小麦子-
这个作者很懒,什么都没留下…
展开
-
力扣---环形链表---Java
解析:首先判断链表是否为空或者只有一个数据。然后将快慢指针分别指向头节点和头结点的下一个。如果快慢指针不相等那就循环,若相等就是代表有环直接停止循环并且return true。在while循环里面判断快指针是否为空,若为空那就return false。若快指针不为空那就快慢指针继续向后移。代码:public boolean hasCycle(ListNode head) { if(head==null || head.next==null){ ret原创 2022-03-15 22:54:10 · 1173 阅读 · 0 评论 -
力扣---删除排序链表中的重复元素---Java
解析:将temp指针指向头部temp和temp.next作为循环条件,若哪个为空那就不用再循环了如果temp和temp.next相等的话就删除重复的元素,直接将temp.next=temp.next.next就可以删除重复的一部分了如果temp和temp.next不相等的话指针继续后移代码:public ListNode deleteDuplicates(ListNode head) { ListNode temp=head; while(temp!=null原创 2022-03-15 22:05:21 · 1352 阅读 · 0 评论 -
力扣--合并两个有序链表---Java
解析:首先需要一个指针永远指向第一个节点然后第二个个指针需要不断的向后走进项比较如果一个链表已空,那就把另一条链表的数据全部放过来代码:public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode head=new ListNode(0); ListNode temp=head; while(list1!=null&&list2!=null){原创 2022-03-15 17:14:21 · 615 阅读 · 0 评论 -
单链表的翻转——Java
准备两个空结点 pre用来保存先前结点、next用来做临时变量在头结点node遍历的时候此时为1结点next = 1结点.next(2结点)1结点.next=pre(null)pre = 1结点node = 2结点进行下一次循环node=2结点next = 2结点.next(3结点)2结点.next=pre(1结点)=>即完成2->1pre = 2结点node = 3结点进行循环…链表的翻转public static ListNode turn(ListNode h.原创 2021-09-05 12:50:53 · 266 阅读 · 0 评论 -
Java实现单链表的基本操作
链表的结构定义链表节点建立单链表链表的创建和遍历链表的结构线性结构的链式存储是用若干地址分散的存储单元存储数据元素,逻辑上相邻的两个数据元素在物理位置上并不一定相邻,必须采用附加信息来表示数据元素之间的顺序关系。因此存储一个数据元素的数据单元至少包含两部分------数据域和地址域上述的结构通常称为结点一个节点表示一个数据元素,通常节点当中的地址会把数据结点连接起来,节点当中的连接关系体现了线性表当中数据元素间的顺序关系,采用这种关系的称为线性链表。从上图当中,head是线性链表当中的第一个.原创 2021-09-04 23:58:26 · 468 阅读 · 0 评论