链表
百味珍果糖
这个作者很懒,什么都没留下…
展开
-
2021-09-29
环形链表给定一个链表,判断链表中是否有环。方法1:快慢指针解决最简单的一种方式就是快慢指针,慢指针针每次走一步,快指针每次走两步,如果相遇就说明有环,如果有一个为空说明没有环。代码比较简单public boolean hasCycle(ListNode head) { if (head == null) return false; //快慢两个指针 ListNode slow = head; ListNode fast = head; wh原创 2021-09-29 00:53:41 · 76 阅读 · 0 评论 -
2021-09-29
回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。使用栈解决public boolean isPalindrome(ListNode head) { ListNode temp = head; Stack<Integer> stack = new Stack(); //把链表节点的值存放到栈中 while (temp != null) { stack.push(te原创 2021-09-29 00:21:45 · 66 阅读 · 0 评论 -
2021-09-25
反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。方法1:使用栈解决最简单的一种方式就是使用栈,因为栈是先进后出的。实现原理就是把链表节点一个个入栈,当全部入栈完之后再一个个出栈,出栈的时候在把出栈的结点串成一个新的链表。public ListNode reverseList(ListNode head) { Stack<ListNode> stack = new Stack<>(); //把链表节点全部摘掉放到栈中 whil原创 2021-09-25 22:55:32 · 62 阅读 · 0 评论 -
2021-09-24
删除链表中的节点编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。示例 1: 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入:head = [4,5,1,9], node = 1 输出:[4,5,9] 解释:给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,原创 2021-09-24 00:16:04 · 68 阅读 · 0 评论