随笔分类 -  算法-链表

摘要:题目:给出一个链表中的两个指针p1和p2,将其之间的结点翻转。思路:可以通过交换结点内的值来实现结点的翻转,空间为O(N);如果要求不能交换值,那么仅凭p1和p2是无法翻转的,因为不知道p1之前的节点,会掉链,只能翻转p1之后的链表,这个过程就类似于给定一个头节点,翻转之后的链表了;可以使用头插法。... 阅读全文
posted @ 2014-08-18 23:00 阿杰的专栏 阅读(240) 评论(0) 推荐(0) 编辑
摘要:题目:单链表的归并排序,返回排序后的链表。传统的归并都是数组,可以随机访问元素,链表则需要顺序遍历找中间结点。思路:设置两个指针,一个步长为1, 一个步长为2,当快指针到达尾结点时,慢指针指向中间结点,时间复杂度为O(N);平分为左链表L1和右链表L2,递归分裂,直到链表为空或者只有一个结点;将链表... 阅读全文
posted @ 2014-08-17 03:23 阿杰的专栏 阅读(9584) 评论(1) 推荐(1) 编辑
摘要:题目:两个数字求和,数字用链表表示,每一个结点代表一位。链表顺序与数字顺序相反,即表头存放数字的最低位。解法:分别遍历两个链表的每个结点,对两个结点求和即可。要维护一个变量保存每次相加之后的进位。更常见的,链表顺序与数字顺序相同,那么做一次链表逆序,求和之后再逆序回来即可。代码: 1 /** 2 ... 阅读全文
posted @ 2014-06-02 09:49 阿杰的专栏 阅读(2446) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示