![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
段娇娇
准备开始当一个安静的大佬。
展开
-
JZ52 两个链表的第一个公共结点
描述 输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 数据范围: n \le 1000n≤1000 要求:空间复杂度 O(1),时间复杂度 O(n) 思路: 将两个链表变成a+b,b+a的形式,此时两个链表的长度相同。再一一进行比较 题解(java) public class Solution { public ListNode FindFirstCommonNode(ListNo原创 2021-10-18 16:43:16 · 79 阅读 · 0 评论 -
JZ25 合并两个排序的链表
描述 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。 数据范围: 0 \le n \le 10000≤n≤1000,-1000 \le 节点值 \le 1000−1000≤节点值≤1000 要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n) 如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6} 题解 方法一 可以考虑将两个链表的节点挨个进行比较,然后插入到一个新的链表。 pub原创 2021-10-18 14:52:33 · 157 阅读 · 0 评论 -
JZ24 反转链表
反转链表 描述 输入一个长度为n链表,反转链表后,输出新链表的表头。 数据范围: n\leq1000n≤1000 要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。 如当输入链表{1,2,3}时, 经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。 解决方法 1.就地逆置 //就地逆置 public ListNode ReverseList(ListNode head) { ListNode next = null; ListNo原创 2021-10-18 12:28:22 · 88 阅读 · 0 评论 -
JZ6 从尾到头打印链表
剑指offer 数据结构–链表 描述 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 <= 链表长度 <= 10000 示例1 输入: {1,2,3} 返回值: [3,2,1] 解法: 方法一: 首先想到是从尾到头打印,链表遍历的话是从头到尾。想到栈的“先进后出”的特性。可以考虑遍历时压入栈,再出栈到一个新的链表。 import java.util.ArrayList; import java.原创 2021-10-18 11:23:36 · 131 阅读 · 0 评论