当前位置: 首页 > article >正文

力扣1022. 从根到叶的二进制数之和(二叉树的遍历思想解决)

Problem: 1022. 从根到叶的二进制数之和

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

思路

遍历思想(利用二叉树的先序遍历)

1.在先序遍历的过程中,用一个变量path记录并更新其经过的路径上的值,当遇到根节点时再将其加到结果值res上;
2.该题中要注意数值的二进制操作,该题中path = path << 1 | root.val;即通过不断地左移(由于题目所说数值均为32位整数)并再与当前节点值相来更新path记录地值

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为二叉树的节点个数

空间复杂度:

O ( h ) O(h) O(h);其中 h h h为二叉树的高度

Code

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int sumRootToLeaf(TreeNode root) {
        traverse(root);
        return res;
    }
    int path = 0;
    int res = 0;
    private void traverse(TreeNode root) {
        if (root == null) {
            return;
        }
        // Leaf root
        if (root.left == null && root.right == null) {
            // Add the value on the path to the res
            res += path << 1 | root.val;
            return;
        }
        // Change the value of path
        path = path << 1 | root.val;
        traverse(root.left);
        traverse(root.right);

        path = path >> 1;
    }
}

http://www.kler.cn/a/533418.html

相关文章:

  • MyBatis XML文件配置
  • 大数据学习之Spark分布式计算框架RDD、内核进阶
  • LeetCode 0922.按奇偶排序数组 II:O(1)空间复杂度-一次遍历双指针
  • 「全网最细 + 实战源码案例」设计模式——策略模式
  • 【教程】禁止网页右键和打开调试页面
  • 15 刚体变换模块(rigid.rs)
  • 485网关数据收发测试
  • 防火墙安全策略作业
  • if let 与 let else 的使用指南
  • lmk内存压力测试工具mem-pressure源码剖析
  • 防御与保护——防火墙安全策略配置
  • JDK17主要特性
  • 大话特征工程:3.特征扩展
  • 【Linux】文件描述符
  • 牛客比赛贪心算法
  • OpenEuler学习笔记(十九):搭建云表格服务
  • Java 基于微信小程序的高校失物招领平台小程序(附源码,文档)
  • c++中priority_queue的应用及模拟实现
  • Git--使用教程
  • 19爬虫:使用playwright登录超级鹰
  • 2025春招,高级程序员回答数据库问题
  • Kubernetes | Rocky Linux 8.9 安装部署 kubernetes集群
  • 4.回归与聚类算法 4.1线性回归
  • 学前端框架之前,你需要先理解 MVC
  • 【llm对话系统】大模型 Llama 如何进行量化和推理
  • FPV光纤无人机军事战场技术详解