摘要: LeetCode 链表3 经典问题 题1 反转链表 第一次代码超出时间限制 原因是,反转之后链表的尾部节点和头结点连上了 题2 合并两个有序链表 通过测试: 题3 删除链表中的节点 题4 移除链表元素 错误示例,拼接链表的时候一定要注意:指向链表节点的指针可能连着好多个节点 阅读全文
posted @ 2020-02-08 20:45 longlongban 阅读(161) 评论(0) 推荐(0) 编辑
摘要: LeetCode 链表2 双指针问题 思考问题: 判断一个链表是否有环 列举几种情况: 你可能已经使用哈希表提出了解决方案。但是,使用双指针技巧有一个更有效的解决方案。在阅读接下来的内容之前,试着自己仔细考虑一下。 想象一下,有两个速度不同的跑步者。如果他们在直路上行驶,快跑者将首先到达目的地。但是 阅读全文
posted @ 2020-02-08 20:42 longlongban 阅读(877) 评论(0) 推荐(0) 编辑
摘要: LeetCode 链表1 单链表 单链表模板 1. 初始化 1. 头部插入 1. 尾部插入 1. 删除节点 1. Index插入 1. Index返回对应的节点指针和val值 阅读全文
posted @ 2020-02-08 20:41 longlongban 阅读(248) 评论(1) 推荐(1) 编辑
摘要: 二叉树 总结例题 1 从中序与后序遍历序列构造二叉树 给定二叉树的后序遍历和二叉树的中序遍历 想法: 1. 先根据后序遍历的最后一个元素构造根节点 2. 寻找根节点在中序遍历中的位置 3. 递归构建根节点的左右子树 总结: 1. 返回类型为pointer,异常情况可以直接返回NULL 2. 上面的代 阅读全文
posted @ 2020-02-08 20:40 longlongban 阅读(147) 评论(0) 推荐(0) 编辑
摘要: LeetCode 二叉树2 运用递归解决树的问题 在前面的章节中,我们已经介绍了如何利用递归求解树的遍历。 递归是解决树的相关问题最有效和最常用的方法之一。 我们知道,树可以以递归的方式定义为一个节点(根节点),它包括一个值和一个指向其他节点指针的列表。 递归是树的特性之一。 因此,许多树问题可以通 阅读全文
posted @ 2020-02-08 20:37 longlongban 阅读(247) 评论(0) 推荐(0) 编辑
摘要: LeetCode 二叉树1 树的遍历 一 深度遍历 深度遍历里面由 三种遍历方式,两种实现方法。都要熟练掌握。 值得注意的是,当你删除树中的节点时,删除过程将按照后序遍历的顺序进行。 也就是说,当你删除一个节点时,你将首先删除它的左节点和它的右边的节点,然后再删除节点本身。 Note:后序遍历在表达 阅读全文
posted @ 2020-02-08 20:33 longlongban 阅读(109) 评论(0) 推荐(0) 编辑