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