File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -103,4 +103,41 @@ class Solution {
103
103
}
104
104
```
105
105
106
+ Swift Code:
107
+
108
+ ``` swift
109
+ class Solution {
110
+ func preorderTraversal (_ root : TreeNode? ) -> [Int ] {
111
+ var list:[Int ] = []
112
+ guard root != nil else {
113
+ return list
114
+ }
115
+ var p1 = root, p2: TreeNode?
116
+ while p1 != nil {
117
+ p2 = p1! .left
118
+ if p2 != nil {
119
+ // 找到左子树的最右叶子节点
120
+ while p2! .right != nil && p2! .right !== p1 {
121
+ p2 = p2! .right
122
+ }
123
+ // 添加 right 指针,对应 right 指针为 null 的情况
124
+ if p2! .right == nil {
125
+ list.append (p1! .val )
126
+ p2! .right = p1
127
+ p1 = p1! .left
128
+ continue
129
+ }
130
+ // 对应 right 指针存在的情况,则去掉 right 指针
131
+ p2! .right = nil
132
+ } else {
133
+ list.append (p1! .val )
134
+ }
135
+ // 移动 p1
136
+ p1 = p1! .right
137
+ }
138
+ return list
139
+ }
140
+ }
141
+ ```
142
+
106
143
好啦,今天就看到这里吧,咱们下期见!
You can’t perform that action at this time.
0 commit comments