![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
链表
链表
千叶真尹
这个作者很懒,什么都没留下…
展开
-
leetcode链表2两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,原创 2022-01-30 17:04:12 · 80 阅读 · 0 评论 -
单链表翻转
之前写过一个单链表翻转的题,但是当时自己对翻转的过程还是一知半解,现再次记录下自己新的理解。循环代码中,一共有四行第一行是为了存储next元素的值,因为下一步操作改方向,会让next元素这个值找不到位置了第二行是为了换方向,指明 cur.next 指向哪里第三行和第四行是为了换位置,需要找下一回他们坐在哪里。注意到此时 cur 位置已经找到了(小板凳做好了),就是此时 next 的位置,所以要想给 pre 找位置,而下一回 pre 的位置在 cur,所以 先 pre = cur,给原创 2022-01-20 15:39:46 · 185 阅读 · 0 评论 -
leetcode栈剑指 Offer 06从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]思路:用栈的思想,先进后出先遍历一遍链表,将元素添加进栈中然后从栈顶开始,依次弹出元素,存储到数组中class Solution { public int[] reversePrint(ListNode head) { Stack<ListNode> stack = new Stack<ListNode原创 2022-01-19 11:06:19 · 157 阅读 · 0 评论 -
leetcode哈希表202快乐数
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。示例 1:输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1示例 2:..原创 2022-01-12 15:44:51 · 160 阅读 · 0 评论 -
leetcode链表206反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]思路:假设原来是1→2→3→∅,需要变成∅←1←2←3定义一个预先节点pre=null,和一个当前节点cur=head每一个循环,需要做如下的事:1.保存当前节点下一节点变量的值next2.将当前节点cur下一个.原创 2021-12-15 09:10:32 · 371 阅读 · 0 评论 -
leetcode链表203移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]public class removeelements { public Li.原创 2021-12-13 11:47:38 · 219 阅读 · 0 评论 -
leetcode链表83删除排序链表中的重复元素
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]注意:1.开头的 head == null 判断2.为什么返回是 head : head只是用来标记这个链表的头节点地址,cur循环之后发生的修改,这个链表也就发生了修改。返回head也就是返回这个链表了。原创 2021-12-07 14:35:21 · 257 阅读 · 0 评论 -
链表学习之单链表的创建与遍历
1.定义javabean类,成员变量,构造方法,重写toString() 方法public class HeroNode { private int no; private String name; private String nickname; public HeroNode next; public HeroNode() { } public HeroNode(int no, String name, String nickname)原创 2021-12-07 11:02:52 · 102 阅读 · 0 评论 -
leetcode链表21合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]目前对链表存在的几个疑问:1.为什么要ListNodecur=listNode; 进行这样一个操作?2.为什么是 returnlistNode.ne...原创 2021-12-06 16:28:03 · 307 阅读 · 0 评论 -
leetcode链表19删除链表的倒数第 N 个结点(待补充)
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode..原创 2021-12-01 14:39:43 · 145 阅读 · 0 评论 -
leetcode链表876链表的中间节点
给定一个头结点为 head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next =.原创 2021-11-30 16:32:16 · 45 阅读 · 0 评论