【前言】:

后续有时间会把文中的图片整理好,将纸质笔记中的图做成JPG。

【1】:链表遗留

【单链表相交】:

  • 单链表算法层次上最难

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K0WslDXs-1663993923868)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220819223715371.png)]

//这道题本身和节点上的值是没有关系的;

//两个链表中有某一个节点的内存地址是同一个,那我们就说这两个链表相交。

【理解相交】:

  • 《@@53_1》

【判断函数】:

一个链表如果有环,那么请返回第一个入环的节点 , 如果无环,则返回NULL;

(入参)——该链表的头节点;

【简单的哈希表方法】:

  • 《@@53_2》

【不存在的结构】:

如果一个链表有环,那么它一定会掉入到自己的环中出不来,它一定会掉入到自己的环里出不来,也不可能走到NULL,每一个节点都只能有一条往外指的next指针;

  • 《@@54_3》

【总结】:

找一个变量一直往下走 , 如果它走到空节点了 , 这个链表它肯定是没有环的,如果它走不到空节点,你又因为把沿途的节点都放到了哈希表里去 , 你每到一个节点都去查——当前的节点在不在哈希表里,如果有环,你一定会遇到——这个重复发现的时刻。当你发现下一个节点是哈希表中已经有的节点,那么该结点一定是第一个入环的节点。

【不用哈希表Find第一个入环的节点】:

  • 《@@54_4》

//如果无环,肯定会走到NULL;

//如果有环,一定会陷入循环;

【 无环单链表情况讨论 】:

  • 《@@56_5》

【求无环单链表相交节点】:

  • 《@@57_6》

【有环链表情况讨论】:

  • 《@@57_7》

【2】:二叉树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJaDCSbF-1663993923869)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220820203038462.png)]

【叶子节点】:

左右孩子都为null 的节点;

【递归序】:

    public static void preOrderRecur(Node head) {if (head == null) {return;}System.out.print(head.value );  //【第一次】//  1preOrderRecur(head.left);    //左侧去递归遍历 ~System.out.print(head.value );  //【第二次】//  2preOrderRecur(head.right);   //右侧去递归遍历 ~System.out.print(head.value );  //【第三次】}
  • 《@@60_8》

//递归方法去完成二叉树的遍历 , 每一个节点都能回个3次( 每一个节点中的数字,都能在篮框中找到3次 );

//虽然某一次的时候可能什么也没干 , 但是, 它是可以回到的。

【三序遍历】:

在递归序的基础上,可以加工出三种顺序的遍历——先序、中序、后序。

【先序遍历】:

对于所有子树来说——先打印头节点,再打印左子树上所有的节点 , 再打印右子树上所有的节点;

  • 《@@60_9》

//只在第一次的时候打印 , 二、三次的时候 , 什么也不干~ ~ ~ ! ! !

【中序遍历】:

  • 《_10》

利用递归序,第二次来到该节点的时候才打印 , 不是第二次来到该节点的什么也不做。

【后序遍历】:

  • 《@@_11》

递归序中第三次的打印——后序。

【总结】:

先序、中序、后序 都可以由 《递归序》加工过来(只是选择打印的时机不同。)

【非递归频率】:

非递归行为在面试场上经常出现 , 看你有没有理解~~~!!!

【非递归实现三序】:

  • 一个定则:

​ //任何递归函数都可以改成非递归函数——这是一定的!!!

【非递归先序】:

  • 《@@62_12》

【非递归后序】:

  • 《@@63_13》

【非递归中序】:

  • 《@@65_14》

【左边界】:

所有的树都是可以被《左边界》给分解掉的 ~

  • 《@@68_15》

【树打印福利函数】:

  • 《@@69_16》

【二叉树面试】:

二叉树的Coding难度大于链表,单很少考二叉树Coding的难度 , 一般都是算法居多。

【二叉树的深度优先遍历】:

对于二叉树来说,深度优先遍历就是==〉先序遍历。

【二叉树的宽度优先遍历】:

  • 〈@@69_17〉

【求一颗二叉树的最大宽度】:

//你要能知道当前的节点在第几层 , 你还得统计这一层有多少个节点~~~

【得有一种机制】:

​ 知道在遍历的过程中 , 哪一层的范围是多少。

【新手研究方法】:

用纸画图 , 一点儿一点儿扣 , 看上去似乎很笨 , 但是这至少能保证你能看懂;

【求一颗二叉树的最大宽度(不用哈希表)】:

Node  curend     //当前层最后一个节点;( 你现在弹出的节点所在层中,这一层的最后一个节点 )Node  nextend.    //下一层最后一个节点;( 当前所在层的下一层 )int   curlevel    //当前层发现的节点数;int   max               //结算时的节点数————当前层的节点总数;
  • 《@@71_19》

数据结构与算法——左程云05相关推荐

  1. 数据结构与算法——左程云03

    [前言]: 看了左神的很多视频,感觉一些算法最好的复现方式应该是用一张张的图来细节刻画,个人感觉这种效果会比动态图要好. 故在此先将全部的笔记附到这里,后续在一点一点把过程图复原完整(暂时没研究手绘软 ...

  2. 数据结构与算法——左程云09

    [前言]: 后续有时间会将纸质笔记中的过程图更新上来. [1]: [Dijkstra使用堆加速]: <@@119_1> [这个方式还可以加速]: //可以通过小根堆的方式来拿值. //系统 ...

  3. 数据结构与算法——左程云06

    [前言]: 后续会将纸质笔记的过程图更新上来. [1]:二叉树遗留 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v4boF5Zj-1663994025825)(/Us ...

  4. 数据结构与算法——左程云08

    [前言]: 后续有时间会更新上纸质笔记中的过程图. [1]:前缀树 [解释前缀树]: <@@93_1> [TrieNode]: <@@95_2> [代价极低]: 一个前缀树一旦 ...

  5. 数据结构与算法——左程云04

    [前言]: 后续有时间会将文中的图片部分,以及手写笔记中的过程图制作成JPG图片上传. [1]:排序算法的稳定性 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39Zp ...

  6. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  7. 一看“左程云:200道算法与数据结构”,二刷“阿里云:70+算法题、30种大厂笔试高频知识点”,3月过去终于挺进我梦中的字节!

    不管是学生还是已经工作的人,我想彼此都有一个相同的梦想:进大厂! 眼看着2020年还有个三十来天就要完美收尾了,那么如何才能在未来三个月弯道超车赶上"金三银四的春招",进入梦寐以求 ...

  8. 数据结构与算法XS班-左程云第八节课笔记(归并排序和快速排序)

    第8节 归并排序和快速排序 ##这是数据结构与算法新手班-左程云第八节课的笔记## 归并排序 归并排序实际上是一个很经典的排序方法,时间复杂度o(N*logN). 递归版本(图解排序算法(四)之归并排 ...

  9. 数据结构与算法XS班-左程云第一节课笔记(位运算、算法是什么、简单排序)

    第1节 位运算.算法是什么.简单排序 ##这是数据结构与算法新手班-左程云第一节课的笔记## 1. 位运算 // 你们会不会表示一个数字的32位啊? // Java中int类型默认以32位二进制数在计 ...

最新文章

  1. html 密码框自动填充,解决chrom浏览器input密码框自动填充
  2. SEM那些被人混淆的事儿(已完结)
  3. Office快捷键大全之三(Access快捷键下篇)
  4. Spring Boot application.yml文件语法
  5. 2016.03.18 近日买房以及学习事项
  6. 程序员月薪2万怎么了?8千又怎么了?
  7. mysql中字符串处理替换字符replace和连接字符串函数concat
  8. springmvc 配置aop
  9. vue axios封装 类方法
  10. 【R文本分析】《工作细胞》是一部成功的科普番嘛?
  11. 泛微OA前端经验总结
  12. 新买的电脑网速慢的解决方案
  13. errorcode 微信分享_微信公众号网页授权code问题
  14. 海外抖音Tiktok这么火,到底值不值得做?
  15. OSChina 周四乱弹 ——世界欠你一个奥斯卡
  16. FDC2214-纸张计数显示装置
  17. JQuery 多选下拉列表左右移动
  18. 幼儿抽象逻辑思维举例_如何激发3-6岁孩子的学霸潜质?关键一招就在逻辑思维训练|绘本|数学|游戏书...
  19. 为Electron 打包后的桌面程序添加自定义向导
  20. ASP的缓存数据技术

热门文章

  1. 金仓数据库KingbaseES安全指南--6.5. LDAP身份验证
  2. winscp 列出‘/users‘的目录项时出错解决方法
  3. 一文让你知道关于App推送那些事
  4. 最强绘图AI:一文搞定Midjourney(附送咒语)
  5. 八猴PBR原理文档熟肉。PBR原理了解必备。
  6. oppo手机用计算机充满电,OPPO手机的充电小技巧,打开这个开关,让你充一次电可玩三天...
  7. 索尼koov机器人比赛_索尼KOOV机器人诞生2周年纪念日新起点一起再出发
  8. 骨传导蓝牙耳机品牌哪个好、最值得入手的骨传导耳机推荐
  9. Odoo 16 企业版手册 - 库存管理之仓库管理
  10. R9 7950X和R9 5950X 差距