热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算左子叶节点之和:深入解析与优化算法

本文深入探讨了计算二叉树左子叶节点之和的算法,并提出了优化方案。通过全局变量记录左子叶节点的累加和,确保最终返回结果的准确性。遍历过程中,无论中间返回什么值,关键在于正确识别并累加左子叶节点。此外,我们还分析了不同遍历方法的优劣,为实际应用提供了更多选择。

原始代码:

只要保证最后return的sum是一个全局变量就好了。中间return了什么不重要。

//先随便找个方法遍历,遍历到某个node的left child不为空但是left child的左右孩子都为空的时候加入到sum里去。int sum = 0;public int sumOfLeftLeaves(TreeNode root) {if (root == null) return 0;if (root.left != null && root.left.left == null && root.left.right == null) {sum += root.left.val;}sumOfLeftLeaves(root.left);sumOfLeftLeaves(root.right);return sum;}

--

Review

首先,这题递归可以有另一种写法:

public int sumOfLeftLeaves(TreeNode root) {if(root == null) return 0;int ans = 0;if(root.left != null) {if(root.left.left == null && root.left.right == null) ans += root.left.val;else ans += sumOfLeftLeaves(root.left);}ans += sumOfLeftLeaves(root.right);return ans;
}

然后这题还可以用Queue模拟BFS。还可用Stack,不过就不伦不类了。


转:https://juejin.im/post/5a3132fc51882531926eb8bd



推荐阅读
  • Android开发常见问题汇总(含Gradle解决方案)第二篇
    本文继续深入探讨Android开发中常见的问题及其解决方案,特别聚焦于Gradle相关的挑战。通过详细分析和实例演示,帮助开发者高效解决构建过程中的各种难题,提升开发效率和项目稳定性。 ... [详细]
  • 本文探讨了Huffman树在数据结构中的应用及其原理。Huffman树,即哈夫曼树,是一种高效的数据压缩技术,通过构建最优二叉树实现编码,广泛应用于文件压缩和网络传输中,有效减少数据存储和传输的空间需求。 ... [详细]
  • 浏览器与服务器在网站访问过程中的数据交互分析
    本文分析了浏览器与服务器在网站访问过程中基于HTTP协议的数据交互机制。HTTP协议具有轻量级和高效通信的特点,主要通过GET、HEAD和POST方法进行数据传输。其“请求-响应”模式确保了数据交互的有序性和可靠性,同时支持多种数据格式和内容类型,为现代Web应用提供了坚实的基础。 ... [详细]
  • 算术表达式分析与解析技术初探
    本文初步探讨了算术表达式的分析与解析技术,针对作者在职业转型过程中发现自身算法基础薄弱的问题,决定在接下来的三个月内,系统地学习和掌握常用数据结构与算法,以提升个人技术能力。研究内容不仅涵盖了基本的算术表达式解析方法,还深入讨论了其在实际应用中的优化策略,为相关领域的进一步研究奠定了基础。 ... [详细]
  • 多进程程序异常退出问题分析与解决 ... [详细]
  • 针对给定的二叉树,本文详细解析了如何实现从左至右、逐层遍历节点值的算法,并探讨了优化方法,以提高遍历效率和代码可读性。 ... [详细]
  • OpenCV 2.4.9 源码解析:级联分类器的错误率与尺寸分析 ... [详细]
  • 数据科学笔记26:深入解析随机森林分类算法及其在Python和R中的应用
    ### 摘要随机森林是一种在集成学习领域备受推崇的算法,被誉为“集成学习技术的典范”。该方法因其简洁性、易实现性和较低的计算成本而被广泛应用。本文将深入探讨随机森林的工作原理,特别是其在Python和R中的具体应用。随机森林通过结合多个决策树和Bagging技术,有效提高了模型的准确性和鲁棒性。我们将详细解析其核心机制,并通过实际案例展示如何在不同编程环境中高效实现这一强大的分类算法。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • 本文深入分析了Django框架中模型应用与非模型应用的区别与应用场景,详细对比了两者在数据处理、性能表现及开发灵活性等方面的特点。同时,文章还介绍了如何在视图函数中有效利用这些特性,结合PostgreSQL、MySQL、SQLite3和Oracle等不同数据库的配置与使用方法,为开发者提供了全面的参考指南。 ... [详细]
  • 在Java中,一个类可以实现多个接口,但是否能够继承多个类则存在限制。本文探讨了Java中实现多继承的方法及其局限性,详细分析了通过接口、抽象类和组合等技术手段来模拟多继承的策略,并讨论了这些方法的优势和潜在问题。 ... [详细]
  • LeetCode 算法挑战:最小栈的 Java 实现与优化 ... [详细]
  • 通过采用JSON数据格式,能够高效且精确地获取用户的实时地理位置信息,为各类位置服务应用提供可靠的数据支持。该方法不仅简化了数据交换流程,还提高了地理信息处理的准确性和效率,适用于移动应用、导航系统及物联网设备等多种场景。 ... [详细]
  • 网站前端开发的核心理念与必备技能解析 ... [详细]
  • Introduction根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按 ... [详细]
author-avatar
arashilan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有