AlgorithmLeetCode 145. Binary Tree Postorder Traversal后序遍历二叉树Given a binary tree, return the postorder traversal of its nodes’ values.Example:Input: [1,null,2,3] 1 \ 2 / 3Output: [3,2,1]Follow up: Recursive solution is trivial, could you do it iteratively?迭代版本class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<>(); Stack<TreeNode> s = new Stack<>(); TreeNode p = root; // 记录上一次被访问的节点 TreeNode q = null; do{ //先找到最左下角的节点,记录沿途的位置 while(p!=null){ s.push(p); p = p.left; } q = null; while(!s.isEmpty()){ p = s.pop(); //BCA的访问次序,如果上一次访问了C,那么A就是该访问的节点 if(p.right == q){ result.add(p.val); q = p; }else{ //二次进栈 s.push(p); p = p.right; break; } } }while(!s.isEmpty()); return result; }}ReviewThe Key To Accelerating Your Coding Skills主题为提升编码技能的关键,首先提出获得解决问题的能力比开发一些应用更加重要。指导阶段,3-8周,入门阶段啥都不懂起步阶段的学生,最重要的是关注细节 根据错误信息调试很重要,随着经验增长,可以学会解读错误信息,抽取相关问题细节,从错误问题中学习经验,不要只是修复完就算了。刚开始可能需要问别人,后面可以google或者追踪代码。编程是终身学习的过程,有经验的工程师会为了解决未解决的问题而不断去学习,只等待是无用的。大师失败的次数比菜鸟尝试的次数还要多得多!进入下个阶段前,你有如下的特征:你见过了足够多的错误了,并且它们不再困扰着你你已经熟悉用google搜寻答案了你可以将你的代码遵循一定规则应用到其他的地方了拐点阶段,2-4周,正确的思维方式最令人困扰的阶段,根据指导,没有现成的方法解决你的问题困扰的原因是:编码速度比上个阶段慢了10-20倍剩余的日子,每天都要突破你的限制,不要待在舒适区关于web开发,有两个转折点会一同到来不要做个CRUD BOY,试试整合第三方的库学好数据结构和算法它们是编程王国的钥匙招聘主管喜欢扎实基础的算法和开发工程师不要追寻热点技术,基础扎实学起来都快变得依赖自己,不要等着别人来帮助写代码时候,想想之前是否写过类似的,可否借鉴视频吞掉了细节,查看API文档更加快速尽可能有效的度过拐点阶段指导阶段,做一些没有指导的任务尽可能少的使用指导文档假设你已经是度过拐点的开发者,适量阅读遵循github文档对你更有帮助重点关注重要且频繁使用的事情要明白这是困难的阶段,放轻松你自己如果你缺乏自信,找那些度过拐点的人聊聊,坚持学习,但不要太大负担,一天不要超过6小时,否则会加长这个阶段的时间。最好获取自信的方法是解决困惑你的问题,如果你挣扎了15个小时,那么之后就会平静下来如果5分钟或者5小时没思路,你会有困扰,但是你成功的次数多了,你的自信心会迅速增长如何知道自己度过了拐点阶段拐点度过之后是接受以下的事实:软件开发是持续的学习(还得学……)如果你觉得自己对所有都掌握了,那么应该解决更复杂的问题了Tip使用VSCode来开发JavaShare雾计算和边缘计算对物联网的意义何在?雾计算其响应更快,过滤信息,取决于网关灵活性,解决带宽瓶颈和延迟问题雾计算将一些处理和资源置于云的边缘,它不是为云存储和计算建立渠道,而是减少信息的发送降低对带宽的需求,再在某些接入点进行聚合。通过使用这种分布式策略,可以降低成本并提高效率。