二叉树刷题吐槽

本文回顾了一周前在LeetCode刷二叉树题的经历,着重讲述了作者对递归过程的理解和总结,包括前序、中序、后续遍历的深入剖析,以及如何通过切割问题和画图来解决难题。最后强调了关键的策略形成过程对解题的重要性。
摘要由CSDN通过智能技术生成

一个星期之前在leetcode上刷了一些二叉树的题,整体感觉是:难但是也只是书上简单的三种遍历 、查找和层序遍历的应用,一些所谓的比较“难”的题只是同时应用其中的好几个,或者一种遍历用了好几遍。

说来也好笑,在刷题的过程中我总结了很多的...呃...可以说是结论吧,但是现在发现记录下的结论都是一些基操,也就是二叉树递归的过程不熟悉导致的结果。下面是刷题过程中的笔记:

前序遍历:节点是子问题                                            第k层的节点数         记录路径

中序遍历:左子树可以解决问题就不需要右子树      (查找)距离是k的节点

后续遍历: 最小子问题是叶子节点的父亲                     交换左右子树,最大路径和

 

{}...递归之前是对单个节点的处理,

那就只看单个节点就好了,主要看空节点,根节点,叶子节点,父节点+题目特殊要求

F(root->left)==左子树==左节点

{}...中间是对左孩子结果的处理

F(root->right)==右子树==右节点

{}..递归之后是对左右孩子的处理

先写出来,画图去修改。

切割问题,分成可以解决的子问题,每个题都要这样做。

先想思路再写递归的两个函数,再写对单个节点的处理,然后画图去修改

记下一个栈帧图

遍历/分治

当逐渐熟悉了二叉树的递归过程之后发现真正有用的是其实是最后的五句。但是现在想来这也是一个过程,必须自己感受过这个过程,自己思考过,才能形成自己的思路。也是这个二叉树能让我沉浸一个下午的时间去思考解法,也是很不错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值