@@ -182,6 +182,90 @@ public:
182
182
};
183
183
```
184
184
185
+ ### ** TypeScript**
186
+
187
+ ``` ts
188
+ /**
189
+ * Definition for a binary tree node.
190
+ * class TreeNode {
191
+ * val: number
192
+ * left: TreeNode | null
193
+ * right: TreeNode | null
194
+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
195
+ * this.val = (val===undefined ? 0 : val)
196
+ * this.left = (left===undefined ? null : left)
197
+ * this.right = (right===undefined ? null : right)
198
+ * }
199
+ * }
200
+ */
201
+
202
+ function levelOrder(root : TreeNode | null ): number [] {
203
+ const res = [];
204
+ if (root == null ) {
205
+ return res ;
206
+ }
207
+
208
+ const arr = [root ];
209
+ let i = 0 ;
210
+ while (i < arr .length ) {
211
+ const { val, left, right } = arr [i ];
212
+ res .push (val );
213
+ left && arr .push (left );
214
+ right && arr .push (right );
215
+ i ++ ;
216
+ }
217
+ return res ;
218
+ }
219
+
220
+ ```
221
+
222
+ ### ** Rust**
223
+
224
+ ``` rust
225
+ // Definition for a binary tree node.
226
+ // #[derive(Debug, PartialEq, Eq)]
227
+ // pub struct TreeNode {
228
+ // pub val: i32,
229
+ // pub left: Option<Rc<RefCell<TreeNode>>>,
230
+ // pub right: Option<Rc<RefCell<TreeNode>>>,
231
+ // }
232
+ //
233
+ // impl TreeNode {
234
+ // #[inline]
235
+ // pub fn new(val: i32) -> Self {
236
+ // TreeNode {
237
+ // val,
238
+ // left: None,
239
+ // right: None
240
+ // }
241
+ // }
242
+ // }
243
+ use std :: rc :: Rc ;
244
+ use std :: cell :: RefCell ;
245
+ use std :: collections :: VecDeque ;
246
+
247
+ impl Solution {
248
+ pub fn level_order (root : Option <Rc <RefCell <TreeNode >>>) -> Vec <i32 > {
249
+ let mut res = Vec :: new ();
250
+ let mut queue = VecDeque :: new ();
251
+ if let Some (node ) = root {
252
+ queue . push_back (node );
253
+ }
254
+ while let Some (node ) = queue . pop_front () {
255
+ let mut node = node . borrow_mut ();
256
+ res . push (node . val);
257
+ if let Some (l ) = node . left. take () {
258
+ queue . push_back (l );
259
+ }
260
+ if let Some (r ) = node . right. take () {
261
+ queue . push_back (r );
262
+ }
263
+ }
264
+ res
265
+ }
266
+ }
267
+ ```
268
+
185
269
### ** ...**
186
270
187
271
```
0 commit comments