剑指Offer14 逆序链表】的更多相关文章

/************************************************************************* > File Name: 14_ReverseListNode.cpp > Author: Juntaran > Mail: JuntaranMail@gmail.com > Created Time: 2016年08月30日 星期二 15时47分32秒 ****************************************…
多写了个逆序链表 /************************************************************************* > File Name: 03_Pirnt_LinkList.c > Author: Juntaran > Mail: JuntaranMail@gmail.com > Created Time: 2016年08月24日 星期三 02时04分25秒 **********************************…
题目描述: 输入一个链表,输出该链表中倒数第k个结点.例如有一个链表有六个节点1,2,3,4,5,6.则它的倒数第二个节点为5 节点定义如下: public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } 思路一: 设置一个快指针,一个慢指针.像一把尺子,当尺子的一端移动到链表的末尾,则另一端则为倒数第k个节点. public class Solution { publ…
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:…
本题来自<剑指offer> 反转链表 题目: 输入一个链表,反转链表后,输出新链表的表头. 思路: 需要三个变量,来保存当前节点的,前面节点和反转后的节点. C++ Code: /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHea…
剑指Offer:删除链表的节点[18] 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 题目分析 如上图所示,我们的定义了三个指针,其中第二.三个指针用于找到重复元素的第一个位置和最后一个位置的下一个位置,然后第一个指针的下一个指向三个指针,这样就跳过了重复元素. 但是编码发现后,还有两种情况欠考虑. 这种情况,刚开始,就是…
剑指Offer:反转链表[24] 题目描述 输入一个链表,反转链表后,输出新链表的表头. 解题分析 这道题我才发现我是属于那种真的笨,图都画出来了流程写不出来.看了别人的代码,总觉得自己差一步. 这也是链表题的一个特点,指针的复杂变化.首先毋庸置疑肯定要有三个指针,他们的排列位置如下图第一行所示. 然后第二个指针,即cur的next一转,指向第一个,即pre,这是就会出现二指向三的指针断裂,所以tmp指针需要时刻指向cur指针的下一个. Java题解 public ListNode Revers…
[剑指 Offer 18. 删除链表的节点] 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为…
剑指 Offer 35. 复杂链表的复制 Offer_35 题目详情 方法一 可以使用一个HashMap来存储旧结点和新结点的映射. 这种方法需要遍历链表两遍,因为需要首先知道映射关系才能求出next和random结点. package com.walegarrett.offer; import java.util.Comparator; import java.util.HashMap; import java.util.TreeSet; /** * @Author WaleGarrett *…
剑指 Offer 24. 反转链表 Offer 24 题目描述: 常规解法 本题的解法很常规,没有其他特别的坑,只需要将链表反转即可. package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/1/26 20:29 */ /** * 题目解析: * 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. */ public class Offer_24 { public ListNode reve…