C++
Java
Python
Python3
C
C#
JavaScript
Ruby
Swift
Go
Scala
Kotlin
Rust
PHP
TypeScript
Racket
Erlang
Elixir
Dart
monokai
ambiance
chaos
chrome
cloud9_day
cloud9_night
cloud9_night_low_color
clouds
clouds_midnight
cobalt
crimson_editor
dawn
dracula
dreamweaver
eclipse
github
github_dark
gob
gruvbox
gruvbox_dark_hard
gruvbox_light_hard
idle_fingers
iplastic
katzenmilch
kr_theme
kuroir
merbivore
merbivore_soft
mono_industrial
nord_dark
one_dark
pastel_on_dark
solarized_dark
solarized_light
sqlserver
terminal
textmate
tomorrow
tomorrow_night
tomorrow_night_blue
tomorrow_night_bright
tomorrow_night_eighties
twilight
vibrant_ink
xcode
上次编辑到这里,代码来自缓存 点击恢复默认模板
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
}
};
运行代码
提交
python3 解法, 执行用时: 28 ms, 内存消耗: 15.2 MB, 提交时间: 2022-07-12 10:03:37
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if root is None: return []
queue = [root]
ans = []
while len(queue) != 0:
tmp = []
cnt = len(queue)
for i in range(cnt):
node = queue[0]
queue = queue[1:]
tmp.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
ans.append(tmp)
return ans
golang 解法, 执行用时: 0 ms, 内存消耗: 2.8 MB, 提交时间: 2021-07-23 10:09:17
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) (ans [][]int) {
if root == nil {
return
}
queue := []*TreeNode{root}
for len(queue) != 0 {
tmp := []int{}
cnt := len(queue)
for i := 0; i < cnt; i++ {
node := queue[0]
queue = queue[1:]
tmp = append(tmp, node.Val)
if node.Left != nil {
queue = append(queue, node.Left)
}
if node.Right != nil {
queue = append(queue, node.Right)
}
}
ans = append(ans, tmp)
}
return
}
php 解法, 执行用时: 8 ms, 内存消耗: 15.7 MB, 提交时间: 2021-07-23 10:08:42
/**
* Definition for a binary tree node.
* class TreeNode {
* public $val = null;
* public $left = null;
* public $right = null;
* function __construct($val = 0, $left = null, $right = null) {
* $this->val = $val;
* $this->left = $left;
* $this->right = $right;
* }
* }
*/
class Solution {
/**
* @param TreeNode $root
* @return Integer[][]
*/
function levelOrder($root) {
if ( $root == null ) return [];
$res = [];
$queue = [$root];
while ( !empty($queue) ) {
$tmp = [];
$cnt = count($queue);
for ( $i = 0; $i < $cnt; $i++ ) {
$node = array_shift($queue);
$tmp[] = $node->val;
if ( $node->left ) $queue[] = $node->left;
if ( $node->right ) $queue[] = $node->right;
}
$res[] = $tmp;
}
return $res; // 元素个数即为二叉树的深度
}
}
python3 解法, 执行用时: 72 ms, 内存消耗: N/A, 提交时间: 2018-08-27 16:26:11
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
vec = []
if root == None:
return vec
from queue import Queue
q = Queue()
q.put(root)
while q.empty() == False:
s = []
for i in range(0, q.qsize()):
temp = q.get()
if temp.left:
q.put(temp.left)
if temp.right:
q.put(temp.right)
s.append(temp.val)
vec.append(s)
return vec