题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意 :此题对比原题有改动 示例 1: 示例 2: 说明: 题目保证链表中节点的值互不相同 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 思路 为了简化删除头节 ...
分类:
其他好文 时间:
2020-02-20 20:08:19
阅读次数:
65
一、什么是单向链表 在动态分配内存空间时,最常使用的就是“单向链表”(Single Linked List)。一个单向链表节点基本上是由两个元素,即数据字段和指针所组成,而指针将会指向下一个元素在内存中的位置,如下图所示: 在“单向链表”中,第一个节点是“链表头指针”,指向最后一个节点的指针设为NU ...
分类:
其他好文 时间:
2020-02-16 13:23:30
阅读次数:
75
//单链表 //头指针 //1.头指针是指向链表的第一个节点的指针,若链表有头节点 //则是指向头节点的指针 //2.头指针具有标识作用,所以常用头指针冠以链表的名字 //3.无论链表是否为空,头指针均不为空,头指针是链表的必要元素 //头节点 /* *头节点是为了操作的统一和方便而设立的,放在第一 ...
分类:
其他好文 时间:
2020-02-11 00:27:21
阅读次数:
79
在 O(1)时间内删除链表结点。给定单向链表的头指针和一个结点指针,定义一个函数在 O(1)时间内删除该结点。 ...
分类:
其他好文 时间:
2020-02-03 22:35:09
阅读次数:
65
面试题17:在O(1)时间删除链表结点 问题描述 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 链表结构 问题分析 曾经未碰到这道题之前,删除链表的节点,用的方法非常原始、基础(代码如下),很明显这种原始的方式带来的时间复杂度为O(n) 过去刚遇到这道题,半天也没想起来 ...
分类:
其他好文 时间:
2020-01-31 21:10:00
阅读次数:
70
链表的回文结构 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针 A ,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: Java C++ two sum https://www.nowco ...
分类:
其他好文 时间:
2020-01-16 12:28:50
阅读次数:
69
解法思路,可以使用暴力解法,但是时间复杂度过多,时间复杂度为O(N),所以不建议使用,我采用双指针法,即头尾两个指针,当头指针的值小于尾指针,则头指针后移,否则尾指针后移 代码如下 package com.qyx.Tree; /** * 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标 ...
分类:
编程语言 时间:
2020-01-10 20:25:58
阅读次数:
77
通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例如 checkout 了某个具体的 commit),master 指针 和 HEAD 指针这种「绑定」的状态就被打破了, ...
分类:
其他好文 时间:
2020-01-08 10:21:40
阅读次数:
73
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 1 class Solution: 2 def deleteDuplication(self, pHead): 3 ...
分类:
编程语言 时间:
2020-01-01 18:40:39
阅读次数:
67
题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 分析: 递归思路,如果当前结点和它的next结点的val值不同,则当前结点可以直接接到已处理完的结点后,继续删除重复的 ...
分类:
编程语言 时间:
2019-12-28 09:42:15
阅读次数:
74