File tree Expand file tree Collapse file tree 1 file changed +73
-0
lines changed Expand file tree Collapse file tree 1 file changed +73
-0
lines changed Original file line number Diff line number Diff line change @@ -454,6 +454,79 @@ var postorderTraversal = function(root, res = []) {
454
454
};
455
455
```
456
456
457
+ Swift:
458
+
459
+ > 迭代法前序遍历
460
+ ``` swift
461
+ func preorderTraversal (_ root : TreeNode? ) -> [Int ] {
462
+ var res = [Int ]()
463
+ if root == nil {
464
+ return res
465
+ }
466
+ var stack = [TreeNode]()
467
+ stack.append (root! )
468
+ while ! stack.isEmpty {
469
+ let node = stack.popLast ()!
470
+ res.append (node.val )
471
+ if node.right != nil {
472
+ stack.append (node.right ! )
473
+ }
474
+ if node.left != nil {
475
+ stack.append (node.left ! )
476
+ }
477
+ }
478
+ return res
479
+ }
480
+ ```
481
+
482
+ > 迭代法中序遍历
483
+ ``` swift
484
+ func inorderTraversal (_ root : TreeNode? ) -> [Int ] {
485
+ var res = [Int ]()
486
+ if root == nil {
487
+ return res
488
+ }
489
+ var stack = [TreeNode]()
490
+ var cur: TreeNode? = root
491
+ while cur != nil || ! stack.isEmpty {
492
+ if cur != nil {
493
+ stack.append (cur! )
494
+ cur = cur! .left
495
+ } else {
496
+ cur = stack.popLast ()
497
+ res.append (cur! .val )
498
+ cur = cur! .right
499
+ }
500
+ }
501
+ return res
502
+ }
503
+ ```
504
+
505
+ > 迭代法后序遍历
506
+ ``` swift
507
+ func postorderTraversal (_ root : TreeNode? ) -> [Int ] {
508
+ var res = [Int ]()
509
+ if root == nil {
510
+ return res
511
+ }
512
+ var stack = [TreeNode]()
513
+ stack.append (root! )
514
+ // res 存储 中 -> 右 -> 左
515
+ while ! stack.isEmpty {
516
+ let node = stack.popLast ()!
517
+ res.append (node.val )
518
+ if node.left != nil {
519
+ stack.append (node.left ! )
520
+ }
521
+ if node.right != nil {
522
+ stack.append (node.right ! )
523
+ }
524
+ }
525
+ // res 翻转
526
+ res.reverse ()
527
+ return res
528
+ }
529
+ ```
457
530
458
531
-----------------------
459
532
<div align =" center " ><img src =https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width =500 > </img ></div >
You can’t perform that action at this time.
0 commit comments