欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

LinkedList专题1

发布时间:2023/12/10 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 LinkedList专题1 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

237 Delete Node in a Linked List

思路:单向链表,只给定要删除的节点。怎么删除这个节点。参考。例如要删除节点node。一般来说我们需要将node.preNode.next = node.next。但是现在没有node的上一个节点。代替方案是修改当前节点为node.next节点。

node.val = node.next.val;node.next = node.next.next;

206 Reverse Linked List

思路:逆转LinkedList,也是单向的。每new一个节点,将当前节点设置为头节点,上一个节点设置为当前节点的next。

public ListNode reverseList(ListNode head) {if(head==null) return null;ListNode node = head;ListNode newNode = new ListNode(node.val);while(node.next!=null){node = node.next;ListNode newHead = new ListNode(node.val);newHead.next = newNode;newNode = newHead;}return newNode;}

学习:不创建新的node,修改原节点的next为上一个节点。参考链接。

21. Merge Two Sorted Lists

思路:有些题你知道该怎么做,就是不会写代码。
代码

234. Palindrome Linked List

学习:这道题目的思路是比较简单的。对于单向列表的难点,往往就是就是如何找到一个节点的上一个节点。这个根据不同要求解决方法不同。
本题思路是1 查找到LinkedList的一半;2 把后一部分逆转;3 比较两部分是否相同。这里的细节就是注意当list长度为奇数的时候。
1 查找到LinkedList的一半,使用快慢指针;
2 把后一部分逆转:在前面做过;
3 比较相同,就简单了。
代码

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的LinkedList专题1的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。