csharp高级练习题:排序二叉树的水平【难度:4级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

csharp高级练习题:排序二叉树的水平【难度:4级】:

给你一个二叉树:

类树节点
  attr_accessor:左
  attr_accessor:右
  attr_reader:值
结束

数据树节点A = {树节点
  左::也许(树节点一)
  右::也许(树节点一)
  值::一
  }派生显示

类节点:
    DEF __init __(个体,L,R,N):
        self.left = L
        self.right = R
        self.value =
常规
等级节点{
    整数值
    左节点
    节点权

    节点(左,右,价值){
        THIS.VALUE =值
        this.left =左
        this.right =右
    }
}

公共类节点
{
    公共节点左;
    公共节点权;
    公共int;
    
    公共节点(L节点,节点R,INT V)
    {= 1;
        右键= R;= V;
    }
}

公共类节点{
  公共节点离开;
  公共节点的权利;
  公共int;
  
  公共节点(节点L,节点R,int v){= 1;= R;= V;
  }
}

你的任务是返回与树的级别进行排序元素列表,这意味着根元素先走,然后根的孩子(从左至右)在第二和第三,依此类推.

如果:红宝石
返回空数组如果根是`nil`.

如果:哈斯克尔
返回空列表,如果根`Nothing`.

如果:蟒蛇
返回空列表,如果根`None`.

如果:CSHARP
返回空列表,如果根是"空".

如果:JAVA
返回空列表是根"空".

实施例1 - 下面的树:

2
                8 9
              1 3 4 5

应该返回下面的列表:

[2,8,9,1,3,4,5]

实施例2 - 下面的树:

1
                8 4
                  3 5
                             7
应该返回下面的列表:

[1,8,4,3,5,7]

编程目标:

using System;
class Kata
{
  public static List TreeByLevels(Node node)
  {
    //off ya go!
    return null;
  }
}


测试样例:

namespace Solution {
  using NUnit.Framework;
  using System;
  using System.Collections.Generic;
  [TestFixture]
  public class SolutionTest
  {
    [Test]
    {
      Assert.AreEqual(new List(), Kata.TreeByLevels(null));
    }
    [Test]
    public void BasicTest()
    {
      Assert.AreEqual(new List(){1,2,3,4,5,6}, Kata.TreeByLevels(new Node(new Node(null, new Node(null, null, 4), 2), new Node(new Node(null, null, 5), new Node(null, null, 6), 3), 1)));


最佳答案(多种解法):

点击查看答案

更多关联题目:

csharp高级练习题:懒惰直放站【难度:3级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/sort-binary-tree-by-levels

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值