LeetCode二叉樹的前序遍歷Swift
阿新 • • 發佈:2020-11-23
/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNode? * public var right: TreeNode? * public init() { self.val = 0; self.left = nil; self.right = nil; } * public init(_ val: Int) { self.val = val; self.left = nil; self.right = nil; } * public init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) { * self.val = val * self.left = left * self.right = right * } * }*/ class Solution { var res:[Int] = [] func preorderTraversal(_ root: TreeNode?) -> [Int] { if root == nil {return []} res.append(root!.val) preorderTraversal(root!.left) preorderTraversal(root!.right) return res } }
概念
前序遍歷:根節點-左子樹-右子樹
中序遍歷:左子樹-根節點-右子樹
後序遍歷:左子樹-右子樹-根節點
層次遍歷:一層一層遍歷
前序遍歷:ABDECFG
中序遍歷:DBEAFCG
後序遍歷:DEBFGCA
層序遍歷:ABCDEFG