ICode9

精准搜索请尝试: 精确搜索
  • 链表2020-07-18 09:31:21

    实现单链表、循环链表、双向链表,支持增删操作 实现单链表反转 实现两个有序的链表合并为一个有序链表 实现求链表的中间结点 实现单链表、循环链表、双向链表,支持增删 循环链表的操作和单链表基本一致,差别仅在于算法中的循环条件不是L或L->为空,而是它们是否等于头指针,因为当循环

  • C/C++实现链表的常用操作2020-07-10 14:36:28

    剑指offer版本 创建一个结点 链接两个结点(链表) 打印某个结点的值 打印pHead之后的链表 销毁pHead之后的链表 //================================================================== // 《剑指Offer——名企面试官精讲典型编程题》代码 // 作者:何海涛 //======================

  • 删除链表中所有重复的结点2020-06-17 19:41:39

    删除链表中所有重复的结点 题目描述 解题思路: 对于删除类的问题需要特别注意的一个点就是链表的头节点,头节点也可能是被删除的结点,所以一般在这种删除类的问题里面,我们都会给出一个伪头结点,为了防止传递二级职责和你这种麻烦的情况出现,首先需要建立一个伪头结点。 接下来,

  • C语言单链表2020-05-18 21:52:33

    1、源代码 #include "list.h" // 1、创建头结点 Node * CreateHeadeNode(void) { Node *pHead = (Node *)malloc(sizeof(Node)); pHead->m_pNext = NULL; return pHead; } // 2、创建新结点 Node * CreateNewNode(DATA data) { Node *pNew = (Node *)malloc(sizeof(Node));

  • 链表相关操作2020-05-14 11:54:59

    1 #include <iostream> 2 using namespace std; 3 typedef struct list 4 { 5 int data; 6 struct list* next; 7 list():data(0),next(NULL){} 8 }List; 9 10 //1. 后插法插入数据 11 void insertData(List *p, int data) 12 { 13 if (p == NULL) 1

  • 链表删除功能实现演示2020-05-03 13:43:31

    插入算法和删除演示: #include <stdio.h> #include <malloc.h> #include <string.h> #include <stdlib.h> typedef struct Node { int data; //数据域 struct Node * pNext; //指针域 }Node, *pNode; //函数声明 pNode create_list(); void traverse_list(pNod

  • 剑指offer-24.反转链表2020-04-20 14:51:21

      1.递归法 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回ListNode def ReverseList(self, pHead): # write code here #递归的终止条件

  • 一道很简单的题目--不同的写法2020-04-06 23:04:21

    写这道题目的意图呢是简单的总结下链表的使用,还有注意的事情 First 比较简单的写法,直接比较大小,不保存数据 int main() { int max = 0, sou; while (1) { printf("输入成绩\n"); scanf("%d", &sou); if (max < sou) {

  • 2 线性表——链表2020-04-05 22:06:54

    1.什么是链表     [1]. 链表是一种在物理存储单元上非连续的的存储结构;     [2]. 链表的数据单元分为:数据域(data:存储节点的数据信息)和指针域(next:存储下/上个节点的地址);      [3]. 链表可以分为:带头结点的链表和不带头结点的链表;     [4]. 基本链表分类:      

  • 数据结构--单链表2020-04-01 09:55:30

    /******************************************************************* Copyright(c) 2016, Harry He All rights reserved. Distributed under the BSD license. (See accompanying file LICENSE.txt at https://github.com/zhedahht/CodingInterviewChinese2/blob/master/

  • 《剑指offer》第三十五题:复杂链表的复制2020-03-31 16:55:46

    // 面试题35:复杂链表的复制 // 题目:请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复 // 制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个 // 结点外,还有一个m_pSibling 指向链表中的任意结点或者nullptr。 #include <cstdio> #include "Comp

  • 剑指offer--链表小结(1)2020-03-30 11:07:27

    1.数据结构之链表 链表是最基本的动态数据结构,是真正的动态结构,不需要处理固定容量,但与此同时带来的是随机访问能力的丧失,其原因是底层内存分配不连续。 小tip:虚拟头节点dummy的作用在于,让对链表头节点的操作和链表中其他节点的操作相同,不需要对头节点单独处理。 2.链表相关题目

  • 面试题二十四:将一个链表反转2020-03-29 14:52:45

      方法1:三指针法 1 ListNode f1( LstNode head){ 2 ListNode phead=null; 3 4 ListNode pnode=head; 5 ListNode pPre=null; 6 7 while( pnode!=null){ 8 ListNode p

  • 剑指Offer(链表)-删除链表中重复的节点2020-03-20 11:55:33

      (删除链表中重复的节点)题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5   解题思路:这里的重复的节点不保留是将只要重复了的节点都要删除掉,所以考虑利用哈希set的方法,

  • 剑指offer——反转链表2020-03-15 15:40:37

    题目描述: 输入一个链表,反转链表后,输出新链表的表头。 解答如下: 环境:python 2.7.3 本题就是设置3个指针:p1 p2 p3,刚开始让p1指向表头,p2指向表头的下一个节点,p3指向p2的下一个节点,然后修改p2的next指针指向p1,然后挪动这3个指针,让p1指向p2,p2指向p3,p3指向p3的下一个节点,每次都改

  • 剑指offer-25题-复杂链表复制2020-03-14 16:03:27

    题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)     python代码: # -*- coding:utf-8 -*- # class RandomListNode

  • 删除链表中重复的结点 --剑指offer2020-03-11 21:58:19

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5   一:没参考写的 遇到相同的就删除 考虑多种情况 比较复杂 public class Solution { public static ListNode delete

  • 13 返回特定数据域的结点个数2020-03-10 23:51:48

    1,首先将链表初始值改为用户的输入 2,根据用户的输入,打印出初始化后的链表 3,用户继续输入希望寻找的值 4,根据这个值在链表中寻找数据域是这个值的结点,并计数,最后返回满足条件的结点个数 1 /*返回特定数据域值的结点个数*/ 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 6

  • 数据结构---不带头结点的单项非循环链表2020-03-03 20:04:09

    因为顺序表的底层空间是连续的,所以如果对元素进行大量的任意位置添加或删除,在顺序表里就要移动大量的元素,效率很低,因此我们需要让元素存储在不连续的空间中,但如果直接存储,就不知道它的下一个元素是什么,这时就可以利用链表这个结构 链表是一种物理存储结构上非连续、非顺序的

  • 剑指offer学习笔记 链表中环的入口节点2020-02-26 16:42:40

    面试题23:链表中环的入口节点。如果一个链表中包含环,如何找出环的入口节点? 解决这个问题的第一步是如何确定一个链表中存在环。我们可以定义两个指针,初始化为指向头节点的指针。两个指针同时从链表头部出发,一个指针一次走一步,另一个指针一次走两步,如果走的快的指针追上了走得

  • 年后第一周周报2020-02-22 20:06:42

    复习了链表知识 1.对增删改查和链表的创建进行了复习。 头插法建立链表 #include<stdio.h> #include<stdlib.h > struct node { int data; struct node *next; }; struct node *list() { struct node *head; struct node *p; int sum; head=(struct node*)malloc(size

  • 复杂链表的复制2020-02-22 16:52:56

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。 (注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)不能改动原链表 思路 时间复杂度O(n),空间复杂度O(1)。 代码 /

  • C++反转链表2020-02-22 15:57:13

    建立新链表进行反转 struct ListNode{ int val; struct ListNode *next; } class solution{ public: ListNode* ReverseList(ListNode* pHead){ ListNode* pNode=pHead; //当前节点 ListNode* pPrev=nullptr; //前一个节点 ListNode*

  • 打印数字2020-02-21 22:35:59

    打印从1到最大的n位数 主要的考点:n可能很大,大到int甚至long int都会溢出,怎么解决? 网上看了几个题解,没看懂,看懂了一个思路最简单的: 从1到n按顺序打印出从1到最大的n十进制数,其实就是n个从0到9的全排列(把数字在0之前的去掉) //打印1到最大的n位数的主方法 public void print

  • 剑指offer-复杂链表的复制2020-02-21 21:04:06

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) /*题目难点在特殊指针的指向,如何解决?1.在每个节点后面添加一

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有