|
31 | 31 | }, |
32 | 32 | { |
33 | 33 | "cell_type": "code", |
34 | | - "execution_count": 10, |
| 34 | + "execution_count": null, |
35 | 35 | "metadata": {}, |
36 | 36 | "outputs": [], |
37 | 37 | "source": [ |
|
40 | 40 | }, |
41 | 41 | { |
42 | 42 | "cell_type": "code", |
43 | | - "execution_count": 7, |
| 43 | + "execution_count": null, |
44 | 44 | "metadata": {}, |
45 | 45 | "outputs": [], |
46 | 46 | "source": [ |
|
52 | 52 | " self.right = None\n" |
53 | 53 | ] |
54 | 54 | }, |
| 55 | + { |
| 56 | + "cell_type": "markdown", |
| 57 | + "metadata": {}, |
| 58 | + "source": [ |
| 59 | + "# 递归简单写法" |
| 60 | + ] |
| 61 | + }, |
| 62 | + { |
| 63 | + "cell_type": "markdown", |
| 64 | + "metadata": {}, |
| 65 | + "source": [ |
| 66 | + "前序遍历:根结点 -> 左子树-> 右子树(前序遍历根节点在前面)\n", |
| 67 | + "\n", |
| 68 | + "中序遍历:左子树-> 根结点-> 右子树(中序遍历根节点在中间)\n", |
| 69 | + "\n", |
| 70 | + "后序遍历:左子树-> 右子树 -> 根结点(后序遍历根节点在后边)\n", |
| 71 | + "\n", |
| 72 | + "根据这个调整便利添加的的顺序就可以" |
| 73 | + ] |
| 74 | + }, |
| 75 | + { |
| 76 | + "cell_type": "code", |
| 77 | + "execution_count": null, |
| 78 | + "metadata": {}, |
| 79 | + "outputs": [], |
| 80 | + "source": [ |
| 81 | + "class Solution:\n", |
| 82 | + " def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:\n", |
| 83 | + " res = []\n", |
| 84 | + " def traversal(root):\n", |
| 85 | + " if root:\n", |
| 86 | + " res.append(root.val)\n", |
| 87 | + " traversal(root.left)\n", |
| 88 | + " traversal(root.right)\n", |
| 89 | + " traversal(root)\n", |
| 90 | + " return res" |
| 91 | + ] |
| 92 | + }, |
| 93 | + { |
| 94 | + "cell_type": "code", |
| 95 | + "execution_count": null, |
| 96 | + "metadata": {}, |
| 97 | + "outputs": [], |
| 98 | + "source": [ |
| 99 | + "class Solution:\n", |
| 100 | + " def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:\n", |
| 101 | + " res = []\n", |
| 102 | + " def traversal(root):\n", |
| 103 | + " if root:\n", |
| 104 | + " traversal(root.left)\n", |
| 105 | + " res.append(root.val)\n", |
| 106 | + " traversal(root.right)\n", |
| 107 | + " traversal(root)\n", |
| 108 | + " return res" |
| 109 | + ] |
| 110 | + }, |
| 111 | + { |
| 112 | + "cell_type": "code", |
| 113 | + "execution_count": null, |
| 114 | + "metadata": {}, |
| 115 | + "outputs": [], |
| 116 | + "source": [ |
| 117 | + "class Solution:\n", |
| 118 | + " def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:\n", |
| 119 | + " res = []\n", |
| 120 | + " def traversal(root):\n", |
| 121 | + " if root:\n", |
| 122 | + " traversal(root.left)\n", |
| 123 | + " res.append(root.val)\n", |
| 124 | + " traversal(root.right)\n", |
| 125 | + " traversal(root)\n", |
| 126 | + " return res" |
| 127 | + ] |
| 128 | + }, |
55 | 129 | { |
56 | 130 | "cell_type": "markdown", |
57 | 131 | "metadata": {}, |
|
105 | 179 | " return self.ans" |
106 | 180 | ] |
107 | 181 | }, |
108 | | - { |
109 | | - "cell_type": "code", |
110 | | - "execution_count": null, |
111 | | - "metadata": {}, |
112 | | - "outputs": [], |
113 | | - "source": [ |
114 | | - "class Solution:\n", |
115 | | - " #前序递归return list\n", |
116 | | - " def preorderTraversal(self, root: TreeNode) -> List[int]:\n", |
117 | | - " ans = []\n", |
118 | | - " def preorder(root):\n", |
119 | | - " if root is None:\n", |
120 | | - " return []\n", |
121 | | - " ans.append(root.val)\n", |
122 | | - " if root.left is not None:\n", |
123 | | - " preorder(root.left)\n", |
124 | | - " if root.right is not None:\n", |
125 | | - " preorder(root.right)\n", |
126 | | - "\n", |
127 | | - " preorder(root)\n", |
128 | | - " return ans\n" |
129 | | - ] |
130 | | - }, |
131 | 182 | { |
132 | 183 | "cell_type": "code", |
133 | 184 | "execution_count": null, |
|
150 | 201 | " self.preTraverse(t.right,ans)" |
151 | 202 | ] |
152 | 203 | }, |
153 | | - { |
154 | | - "cell_type": "markdown", |
155 | | - "metadata": {}, |
156 | | - "source": [ |
157 | | - "**注**:递归法可以将ans放入参数或solution的全局变量,使其不需要第二个函数, 有第二个函数,第二个不需要return" |
158 | | - ] |
159 | | - }, |
160 | 204 | { |
161 | 205 | "cell_type": "markdown", |
162 | 206 | "metadata": {}, |
|
334 | 378 | }, |
335 | 379 | { |
336 | 380 | "cell_type": "code", |
337 | | - "execution_count": 12, |
| 381 | + "execution_count": null, |
338 | 382 | "metadata": {}, |
339 | 383 | "outputs": [], |
340 | 384 | "source": [ |
|
781 | 825 | }, |
782 | 826 | { |
783 | 827 | "cell_type": "code", |
784 | | - "execution_count": 1, |
| 828 | + "execution_count": null, |
785 | 829 | "metadata": {}, |
786 | 830 | "outputs": [], |
787 | 831 | "source": [ |
|
790 | 834 | }, |
791 | 835 | { |
792 | 836 | "cell_type": "code", |
793 | | - "execution_count": 3, |
794 | | - "metadata": {}, |
795 | | - "outputs": [ |
796 | | - { |
797 | | - "data": { |
798 | | - "text/plain": [ |
799 | | - "-1" |
800 | | - ] |
801 | | - }, |
802 | | - "execution_count": 3, |
803 | | - "metadata": {}, |
804 | | - "output_type": "execute_result" |
805 | | - } |
806 | | - ], |
| 837 | + "execution_count": null, |
| 838 | + "metadata": {}, |
| 839 | + "outputs": [], |
807 | 840 | "source": [ |
808 | 841 | "s[0][1]" |
809 | 842 | ] |
|
1018 | 1051 | ], |
1019 | 1052 | "metadata": { |
1020 | 1053 | "kernelspec": { |
1021 | | - "display_name": "Python 3", |
| 1054 | + "display_name": "Python 3 (ipykernel)", |
1022 | 1055 | "language": "python", |
1023 | 1056 | "name": "python3" |
1024 | 1057 | }, |
|
1032 | 1065 | "name": "python", |
1033 | 1066 | "nbconvert_exporter": "python", |
1034 | 1067 | "pygments_lexer": "ipython3", |
1035 | | - "version": "3.7.0" |
| 1068 | + "version": "3.8.12" |
1036 | 1069 | } |
1037 | 1070 | }, |
1038 | 1071 | "nbformat": 4, |
|
0 commit comments