从"按层次输出二叉树"到"求解二叉树深度"的总结
本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/41964669
最近在刷LeetCode上的算法题,发现好多题目的解题思路大体是一致的,甚至会出现一解对多题的情形,可能一方面原因是我刷的都是简单题,另一方面原因可能是网站有意来提高我们的信心和联想能力。比如有求解二叉树最大深度和求解二叉树最小深度的题目,也有判断两颗树是否完全一致和判断两个树是否轴对称的题目,还有按层次从树根往下输出每层元素和按层次从下往树根输出每层元素的题目等。
昨天解答了按层次从树根往下输出每层元素的题目,今天又碰巧遇到类似的三个题目,并不是我刻意拿这几个题目来说话,而是我觉得算法之间思想是相通的,并不是孤立的,从一个算法可以转变为另一个算法,可能只需要加一些简单的条件,所以我觉得如果我们单纯地为了做题而做题,虽然也能够提高自己的算法水平,但是并不能举一反三,如果我们在做一道题的时候能够多一些联想,多考虑一些其它可能的方式,久而久之,我们的思考能力和分析问题的能力也会得到提高。就拿我自己来说吧,之前从没做过任何算法题,除了在学校数据结构课上学习的一些知识。刚开始做LettCode上简单题算法题时,感觉很困难,一道题都要想半天甚至一天,因为之前从未有过算法相关的训练,思维过程也没有那么的灵活,但是我坚持每一道题都自己想,自己分析每一道题,不管自己算法写的有多烂,只要是对的即可,对于自己这样的新手开始不必要要求那么高。在慢慢坚持刷完二十多道简单题后,我发现自己的思维不再那么刻板,我会通过某一道题联系到另外一些相关的题。我想每道算法题肯定会对应着某一个问题,对应着一个应用场景,要不就没有人提出问题,也没必要去解决它。我还会继续坚持下去,从简单题到困难题,from easy to hard,坚持刷完已有的166道题目。这个过程也许就是成长的过程吧,并不需要一个完美的结果,只需要坚持自己,做自己想做的事,不断提高自己,从简单开始,从基础开始,慢慢超越自己,提高自己。
分享这短时间在刷题中的一些体会:
(1)不要好高骛远。从简单做起,要不为什么会把题目分为简单、中等、困难呢,万丈高楼从地起。
(2)坚持下去。每两天我都会抽出时间做一做题,虽然上班很忙,抓住身边的暗时间,不久你就会发现不一样的自己。
(3)独立思考。不要一时想不出来就百度,自己想出来的永远也忘记不了,努力自己思考,提高自己的思维能力。
(4)分享。将自己的思路写下来,分享给大家,知识的共享所得回报不是简单的知识相加,而是线性的甚至是指数级的。
希望对你有所帮助。谢谢。
从"按层次输出二叉树"到"求解二叉树深度"的总结的更多相关文章
- 二叉树 Java 实现 前序遍历 中序遍历 后序遍历 层级遍历 获取叶节点 宽度 ,高度,队列实现二叉树遍历 求二叉树的最大距离
数据结构中一直对二叉树不是很了解,今天趁着这个时间整理一下 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显 ...
- 树&二叉树&&满二叉树&&完全二叉树&&完满二叉树
目录 树 二叉树 完美二叉树(又名满二叉树)(Perfect Binary Tree) 完全二叉树(Complete Binary Tree) 完满二叉树(Full Binary Tree) 树 名称 ...
- LeetCode 965. 单值二叉树 (遍历二叉树)
题目链接:https://leetcode-cn.com/problems/univalued-binary-tree/ 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树. 只有给定的树是 ...
- 【Java】 大话数据结构(9) 树(二叉树、线索二叉树)
本文根据<大话数据结构>一书,对Java版的二叉树.线索二叉树进行了一定程度的实现. 另: 二叉排序树(二叉搜索树) 平衡二叉树(AVL树) 二叉树的性质 性质1:二叉树第i层上的结点数目 ...
- Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现
二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点. Binary Tree: 00 |_____ | | 00 00 |__ |__ | | | | ...
- 剑指offer58:对称的二叉树。判断一颗二叉树是不是对称的,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的
1 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 2 思路和方法 定义一种遍历算法,先遍历右子结点再遍历左子结点:如对称先序 ...
- 找出 int 数组的平衡点 & 二叉树 / 平衡二叉树 / 满二叉树 / 完全二叉树 / 二叉查找树
找出 int 数组的平衡点 左右两边和相等, 若存在返回平衡点的值(可能由多个); 若不存在返回 -1; ``java int [] arr = {2,3,4,2,4}; ```js const ar ...
- 选课 树形DP+多叉树转二叉树+dfs求解答案
问题 A: 选课 时间限制: 1 Sec 内存限制: 128 MB 题目描述 大 学里实行学分.每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分.学生最后的学分是他选修的各门 ...
- 【遍历二叉树】06二叉树曲折(Z字形)层次遍历II【Binary Tree Zigzag Level Order Traversal】
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定一个二叉树,返回他的Z字形层次 ...
随机推荐
- 一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的正负数之间相对顺序,比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时
#include <iostream> using namespace std; void txsort(int* arr, int len) { if (!arr || len == 1 ...
- 安卓高级8 SurfaceView案例三 结合mediaplay播放视频
我们知道mediaplay无法直接播放视频所以我们结合Surface package qianfeng.com.mediaplayerdemo; import android.media.MediaP ...
- [Angular2]eclipse中angular2开发环境的搭建
本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan 环境准备 1.eclipse neon 2.网络连接 插件地址 eclipse的插件市场地址: htt ...
- Programming In Scala笔记-第六章、函数式对象
这一章主要是以定义和完善一个有理数类Rational为线索,分析和介绍有关类定义,构造函数,方法重写,变量定义和私有化,以及对操作符的定义等. 一.Rational类定义和构造函数 1.定义一个空类 ...
- NLP系列(1)_从破译外星人文字浅谈自然语言处理基础
作者:龙心尘 &&寒小阳 时间:2016年1月. 出处: http://blog.csdn.net/longxinchen_ml/article/details/50543337 ht ...
- Swift3的playground中对UI直接测试支持的改变
我们知道在Xcode的playground中不仅可以测试console代码,还可以测试UI代码,甚至我们可以测试SpriteKit中的场景,有兴趣的童鞋可以看我之前写的这一篇blog: Xcode的p ...
- Scala:集合类型Collection和迭代器
http://blog.csdn.net/pipisorry/article/details/52902549 Scala Collection Scala 集合分为可变的和不可变的集合. 可变集合可 ...
- Unity UGUI图文混排(六) -- 超链接
图文混排更新到超链接这儿,好像也差不多了,不过就在最后一点,博主也表现得相当不专业,直接整合了山中双木林同学提供的超链接的解决方案,博主甚至没来得及细看就直接复制了,但感觉还是挺好用的. 博主已经将超 ...
- CentOS6.7 下安装JDK
第一步:从官网上下载rpm版本的jdk文件. 第二步:安装JDK 执行命令rpm -ivh jdk-8u73-linux-i586.rpm 至此,JDK安装完成,我们来看下JDK的安装目录 ...
- Struts 2 之类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...