leetcode 998. 最大二叉树 II

本文介绍了解决LeetCode上一道关于在最大二叉树中插入节点的问题,通过具体的示例解析了插入节点的规律及算法实现,适用于对二叉树操作有一定基础的学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 题目链接 https://leetcode-cn.com/problems/maximum-binary-tree-ii/

  2. 题目描述

    1. 讲真,感觉原题的描述感觉都是废话。这道题让你干的是插入节点,并且保持最大二叉树
    2. 示例 1:

      输入:root = [4,1,3,null,null,2], val = 5
      输出:[5,4,null,1,3,null,null,2]
      解释:A = [1,4,2,3], B = [1,4,2,3,5]
      

      示例 2:

      输入:root = [5,2,4,null,1], val = 3
      输出:[5,2,4,null,1,null,3]
      解释:A = [2,1,5,4], B = [2,1,5,4,3]
      

      示例 3:

      输入:root = [5,2,3,null,1], val = 4
      输出:[5,2,4,null,1,3]
      解释:A = [2,1,5,3], B = [2,1,5,3,4
  3. 解题思路

    1. 题干好像没给出实例。通过观察实例,找到了插入的规律。当val > root.val 时 新建一个节点,值为val,右子树为root,当val < root.val时,root的右子树为将val插入到右子树后的结果。当root为空时,新建一个节点
  4. 代码

    1. python
      class Solution:
          def insertIntoMaxTree(self, root: TreeNode, val: int) -> TreeNode:
              if not root: return TreeNode(val)
              if root.val < val:
                  newTree = TreeNode(val)
                  newTree.left = root
                  return newTree       
              else:
                  root.right = self. insertIntoMaxTree(root.right, val)
                  return root
              

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值