链表
小嘚
这个作者很懒,什么都没留下…
展开
-
算法题:反转链表难度:简单
方法一:迭代 这是是一种比较普通的算法,但我自己也没想到这种 class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode curr = head; while (curr != null) { ListNode next = curr.next; curr.next = prev.原创 2021-12-19 16:17:42 · 466 阅读 · 0 评论 -
算法题:移除链表元素 难度:简单
这道题呢,优解有递归,递归这种方式呢,真的觉得好棒…但是自己太弱了,无法想出这样的方式去解题,甚至读题解的时候也需要纸张的帮助才能看懂,希望以后自己能很好的掌握。 递归 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val;.原创 2021-12-19 15:14:15 · 405 阅读 · 0 评论 -
算法题:环形链表 难度:简单
链表之前弄过一些的结果又遗忘了, 然后这道题的话学习的一个新的算法 快慢指针 本方法需要读者对「Floyd 判圈算法」(又称龟兔赛跑算法)有所了解。 假想「乌龟」和「兔子」在链表上移动,「兔子」跑得快,「乌龟」跑得慢。当「乌龟」和「兔子」从链表上的同一个节点开始移动时,如果该链表中没有环,那么「兔子」将一直处于「乌龟」的前方;如果该链表中有环,那么「兔子」会先于「乌龟」进入环,并且一直在环内移动。等到「乌龟」进入环时,由于「兔子」的速度快,它一定会在某个时刻与乌龟相遇,即套了「乌龟」若干圈。 我们可以根据上原创 2021-12-13 00:04:02 · 1177 阅读 · 0 评论