题解 | #把二叉树打印成多行#
把二叉树打印成多行
https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288
using System;
using System.Collections.Generic;
/*
public class TreeNode
{
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode (int x)
{
val = x;
}
}
*/
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pRoot TreeNode类
* @return int整型二维数组
*/
public List<List<int>> Print (TreeNode pRoot) {
// write code here
if (pRoot == null)
return new List<List<int>>();
return PrintGD(new List<TreeNode>() {
pRoot
});
}
public List<List<int>> PrintGD(List<TreeNode> lT) {
// write code here
if (lT == null || lT.Count == 0)
return null;
List<List<int>> lsls = new List<List<int>>();
List<int> ls = new List<int>();
List<TreeNode> lTNew = new List<TreeNode>();
for (int i = 0; i < lT.Count; i++) {
ls.Add(lT[i].val);
if (lT[i].left != null)
lTNew.Add(lT[i].left);
if (lT[i].right != null)
lTNew.Add(lT[i].right);
}
if (ls.Count != 0)
lsls.Add(ls);
List<List<int>> lslsC = PrintGD(lTNew);
if (lslsC != null && lslsC.Count != 0)
lsls.AddRange(lslsC);
return lsls;
}
}
腾讯云智研发成长空间 216人发布