本帖最后由 代码买卖 于 2016-9-7 04:43 编辑


之前我们探索了数组、字典、字符串链表栈、队列的处理和应用。今天我们来讲讲平常相对很少用到,面试中却是老面孔的数据结构:二叉树。本期的内容有:

  • 基本概念:实现,深度 ,二叉查找树
  • 遍历
  • 苹果面试题:在iOS中展示二叉树


Swift 算法实战之路:二叉树 0

Swift 算法实战之路:二叉树 - 敏捷大拇指 - Swift 算法实战之路:二叉树 0





1、概念

Swift 算法实战之路:二叉树 1

Swift 算法实战之路:二叉树 - 敏捷大拇指 - Swift 算法实战之路:二叉树 1


首先介绍下二叉树。二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点,并且二叉树的子树有左右之分,其次序不能任意颠倒。下面是节点的Swift实现:

[Swift] 纯文本查看 复制代码
public class TreeNode {
  public var val: Int
  public var left: TreeNode?
  public var right: TreeNode?
  public init(_val: Int) {
    self.val = val
    self.left = nil