首页 > 试题广场 >

修剪叶子

[编程题]修剪叶子
  • 热度指数:3261 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
有一棵有个节点的二叉树,其根节点为。修剪规则如下:
1.修剪掉当前二叉树的叶子节点,但是不能直接删除叶子节点
2.只能修剪叶子节点的父节点,修剪了父节点之后,叶子节点也会对应删掉
3.如果想在留下尽可能多的节点前提下,修剪掉所有的叶子节点。请你返回修剪后的二叉树。
有如下二叉树:
     o
    / \
   o   o
  / \  / \
 o  o o   o
修剪过后仅会留下根节点。
示例1

输入

{1,1,1,1,1,1,1}

输出

{1}

说明

叶子节点为最下面的4个1节点,但是不能直接修剪,只能修剪中间的2个1,修剪掉之后,只有根节点了
示例2

输入

{1,#,1,#,1,#,1,#,1}

输出

{1,#,1,#,1}

说明

退化为一条链了,将最后两个节点删除。

备注:
,删除根节点时返回为空。

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 fred-coder
发表于 2022-02-12 16:42:52
自顶向下,判断叶子节点的父节点,如果是将其删除,注意左右子节点有一个是叶子节点即可 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # s 展开全文
头像 代码界的小白
发表于 2022-01-01 00:54:29
题目主要信息 1、给一个n个节点的二叉树 2、不可以直接删除叶节点,只能修改叶节点的父节点 3、保留尽可能多的节点 方法一:递归遍历方法 具体方法 为了保留尽可能多的树节点,采用贪心的方式,只删除所有叶结点的父节点。 对于一个要删除的节点,它的特点是,存在有为叶节点的子节点。我们通过遍历树,判断该 展开全文
头像 认认真真coding
发表于 2022-01-27 22:31:40
修剪叶子 题目描述 有一棵有n个节点的二叉树,其根节点为root。修剪规则如下: 1.修剪掉当前二叉树的叶子节点,但是不能直接删除叶子节点 2.只能修剪叶子节点的父节点,修剪了父节点之后,叶子节点也会对应删掉 3.如果想在留下尽可能多的节点前提下,修剪掉所有的叶子节点。请你返回修剪后的二叉树。 方法 展开全文
头像 godhands
发表于 2021-12-30 23:12:27
描述 题目描述 给我们一个n个节点的二叉树,然后让我们修建二叉树,最后返回我们修建过后的二叉树 修建规则如下: 不能直接删除叶子节点,可以删掉叶子节点的父亲节点,然后叶子节点和父亲节点都没了 想尽可能多的留下节点,让我们输出最后的叶子节点 样例解释 {1,1,1,1,1,1,1} 如果我们想 展开全文
头像 牛客马克西
发表于 2023-10-09 15:11:21
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) { 展开全文
头像 牛客963585784号
发表于 2022-02-28 16:07:28
/*  * function TreeNode(x) {  *   this.val = x;  *   this.left = null;  *   this.right = null;   展开全文
头像 牛客844482668号
发表于 2023-03-14 17:23:07
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 展开全文
头像 乐弦之佩
发表于 2022-11-22 09:20:38
import java.util.*; public class Solution { public TreeNode pruneLeaves (TreeNode root) { // 预处理 if (root == null || needPrune(ro 展开全文
头像 乐弦之佩
发表于 2022-11-22 09:27:07
import java.util.*; public class Solution { public TreeNode pruneLeaves (TreeNode root) { // 预处理 if (root == null) return null; 展开全文
头像 AimerAimer
发表于 2022-01-18 12:53:17
题意:               方法一: 递归 思路:         如 展开全文