码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 剑指offer-数据结构二


    大家好,我是Nefelibat,是一名研二的学生。

    在博客上记录算法笔记,是因为想push自己每天坚持刷几道算法题,同时也希望能把自己总结到的经验分享给大家,希望大家阅读愉快😊

    目录

    链表

    题目:从尾到头打印链表

    思路:

    代码

    用例

    树

    题目:输入前序遍历和中序遍历,重建二叉树

    思路:

    代码

    注意

    题目:二叉树的下一个节点 :给定一个二叉树和其中的一个节点,如何找出中序遍历的下一个节点?树中有三个指针,左右节点指针和父节点的指针

    思路

    代码

    测试用例

    栈和队列

    题目:用两个栈实现一个队列,并完成在队列尾部插入节点和在队列头部插入节点的功能

    思路

    代码

    测试用例

    题目:用两个队列实现一个栈

    思路



    链表

    题目:从尾到头打印链表

    思路:

    弄清楚在打印链表的时候是否能修改链表的结构?遍历链表,第一个遍历的节点是最后一个输出,最后一个遍历的节点是第一个输出,这是典型的后进先出,因此可以想到栈先进后出的属性,经过一个节点,就把这个节点放在栈中。

    代码

     

    用例

    输入的链表有多个节点,输入的链表只有一个节点

    输出链表的头节点为空

    树

    题目:输入前序遍历和中序遍历,重建二叉树

    思路:

    前序遍历的第一个节点是根节点,根据这个值去扫描中序遍历,就能获得左子树和右子树的节点值;用递归的方法去构建左子树和右子树。

    代码

    注意

    如果传入的前序指针和中序指针为null,长度小于等于0,就返回空值

    题目:二叉树的下一个节点 :给定一个二叉树和其中的一个节点,如何找出中序遍历的下一个节点?树中有三个指针,左右节点指针和父节点的指针

    思路

    情况1:如果一个节点有右子树,那么他的下一个节点是右指数的最左节点,也就是说从右子节点的左指节点的指针触发,就可以找到下一个节点。

    情况2:如果一个节点没有右子树,这个节点是父节点的左节点,那么他的下一个节点就是父节点;如果一个节点没有右子树,这个节点是父节点的右节点,那么这种情况就比较复杂,可以沿着父节点的指针一直向上遍历,一直到达是父节点的左子节点,那么这个节点的父节点就是下一节点

    代码

     

    测试用例

    1、完全二叉树、不完全二叉树

    2、特殊二叉树,如所有节点都没有左子节点的二叉树和所有节点都没有右子节点的二叉树,只有一个节点的二叉树,

    3、不同节点位置的下一个节点

    栈和队列

    题目:用两个栈实现一个队列,并完成在队列尾部插入节点和在队列头部插入节点的功能

    思路

    先将元素压入到一个栈中,然后弹出放入另外一个栈,从另外一个栈弹出的顺序就是队列先进先出的顺序

    代码

    测试用例

    1、往空的队列汇总添加、删除元素

    2、往非空的队列汇总添加、删除元素

    3、连续删除元素直到队列是非空

    题目:用两个队列实现一个栈

    思路

    先将元素入一个空的队列,然后将元素压入另外一个队列,而剩下的队列尾部的元素被弹出,然两个队列的元素如此这样反复

  • 相关阅读:
    SpringBoot+Vue实现前后端的毕业设计管理系统
    ffmpeg之 一张/多张图片合成视频
    puzzle(102.1)不规则数独、变种数独
    python系列笔记——可变数据类型和不可变数据类型常考知识点
    【深度学习笔记】3_10 多层感知机的PyTorch实现
    idea 如何 进行无限续期
    甘露糖-聚乙二醇-马来酰亚胺 mannose-PEG-MAL 马来酰亚胺-PEG-甘露糖
    面试高潮季来临,Android 程序猿该如何斩获大厂offer?
    本机idea连接虚拟机中的Hbase
    git关于创建/删除分支常用命令
  • 原文地址:https://blog.csdn.net/qq_41821067/article/details/125415671
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号