回答編集履歴
5
追記
test
CHANGED
@@ -31,3 +31,23 @@
|
|
31
31
|
と書き換え可能です。
|
32
32
|
|
33
33
|
(parent.left, parent.rightが属性としてもともと存在するという条件下で)
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
----
|
38
|
+
|
39
|
+
追記
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
クラスにsetterメソッドを用意して
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
```python
|
48
|
+
|
49
|
+
(parent.set_left if node.value < parent.value else parent.set_right)(node.left)
|
50
|
+
|
51
|
+
```
|
52
|
+
|
53
|
+
とするのが1行で書けてかつ意味論的にもわかりやすい、ちょうどいい着地点かなと思いました。
|
4
短くできた
test
CHANGED
@@ -24,8 +24,10 @@
|
|
24
24
|
|
25
25
|
```python
|
26
26
|
|
27
|
-
parent.
|
27
|
+
parent.left, parent.right, *_ = (parent.left, node.left, parent.right)[node.value < parent.value:]
|
28
28
|
|
29
29
|
```
|
30
30
|
|
31
31
|
と書き換え可能です。
|
32
|
+
|
33
|
+
(parent.left, parent.rightが属性としてもともと存在するという条件下で)
|
3
間違ってました
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
```python
|
26
26
|
|
27
|
-
parent.right, parent.left, *_ = (parent.
|
27
|
+
parent.right, parent.left, *_ = (node.left, parent.left, parent.right, node.left)[(node.value < parent.value)*2:]
|
28
28
|
|
29
29
|
```
|
30
30
|
|
2
間違い
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
```python
|
26
26
|
|
27
|
-
parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value]
|
27
|
+
parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value:]
|
28
28
|
|
29
29
|
```
|
30
30
|
|
1
間違い
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
```python
|
26
26
|
|
27
|
-
parent.right, parent.left = (parent.right, node.left, parent.left)[node.value < parent.value]
|
27
|
+
parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value]
|
28
28
|
|
29
29
|
```
|
30
30
|
|