質問編集履歴

2

訂正

2022/04/16 06:45

投稿

fu_3823
fu_3823

スコア81

test CHANGED
@@ -1 +1 @@
1
- 二分木を再帰でトラバースするとき、Pythonのリストの挙動がうまく理解でkない
1
+ 二分木を再帰でトラバースするとき、Pythonのリストの挙動がうまく理解でない
test CHANGED
File without changes

1

加筆

2022/04/15 20:38

投稿

fu_3823
fu_3823

スコア81

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
  if root:
15
15
  l.append(str(root.val))   # パスをリストで表現
16
16
  s += str(root.val)     # パスを文字列で表現
17
- print('lst:', l, 'string:', s) # パスを表示
17
+ print('lst:', l, 'string:', s, '\n') # パスを表示
18
18
  if not root.left and not root.right:
19
19
  res.append(l)
20
20
  res.append(s)
@@ -25,3 +25,11 @@
25
25
  helper(root, l, s)
26
26
  return res
27
27
  ```
28
+ 上記のコードは、リストと文字列の両方でテストしているのと、解答の書式に合っていないので、正解にはなりませんが、以下のような結果になります。二分木のイメージは、リンクを参照していただけると助かります。
29
+ 入力
30
+  [1,2,3,null,5]
31
+ 出力
32
+  リストを使った時 [["1","2","5","3"], ["1","2","5","3"]]
33
+  文字列を使った時 [,"125", "13"]
34
+
35
+ リストを使うと、二分木の分岐で再起の際、List.append()でのキーの追加をするところでリストが分岐されていかないようです。リストオブジェクトの性質による動きなのでしょうか。