04 2018 档案

摘要:回文链表 链接 请检查一个链表是否为回文链表。 进阶:你能在 O(n) 的时间和 O(1) 的额外空间中做到吗? 解题思路: 回文链表的特点就是对称。 把链表放到栈中去,利用栈的先进后出的规则,和原链表一一做比较。全部相等,则是回文链表。 代码实现如下: # Definition for singl 阅读全文
posted @ 2018-04-24 18:32 oldmanli 阅读(497) 评论(0) 推荐(1) 编辑
摘要:反转一个单链表。 进阶:链表可以迭代或递归地反转。你能否两个都实现一遍? 示例 : 给定这个链表:1->2->3->4->5 返回结果: 5->4->3->2->1 题目链接 解题思路: 1. 迭代版本: 循环列表,定义两个指针,一个指针是已经迭代完的链表的最后一个节点称为last_node,一个指 阅读全文
posted @ 2018-04-23 19:20 oldmanli 阅读(331) 评论(0) 推荐(1) 编辑
摘要:我们在上篇文章里面提到了链表的翻转,给定一个链表,对每两个相邻的节点作交换,并返回头节点,今天的这道题是它的升级版,如下: k个一组翻转链表 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节 阅读全文
posted @ 2018-04-19 15:51 oldmanli 阅读(557) 评论(2) 推荐(3) 编辑
摘要:继续关于linked list的算法题: 删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素使得每个元素只留下一个。 案例: 给定 1->1->2,返回 1->2 给定 1->1->2->3->3,返回 1->2->3 解题思路: 这道题很简单,只需要比较当前节点和下一个节点,相同,则当 阅读全文
posted @ 2018-04-10 17:49 oldmanli 阅读(533) 评论(0) 推荐(5) 编辑
摘要:我们继续来看链表的第二道题,来自于leetcode: 两数相加 给定两个非空链表来代表两个非负整数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 分析: 因为是位数按照逆序方式存储,所以链表的前 阅读全文
posted @ 2018-04-05 09:49 oldmanli 阅读(595) 评论(0) 推荐(3) 编辑

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