Swift 二叉树遍历

class TreeNode<Value> {
    var val: Value
    var left: TreeNode?
    var right: TreeNode?
    
    
    init(value: Value, left: TreeNode?, right: TreeNode?) {
        self.val = value
        self.left = left
        self.right = right
    }
}
func traverseForward(_ head: TreeNode<Int>?){
    guard let root = head else { return }
    print(root.val)
    traverseForward(root.left)
    traverseForward(root.right)
}


func traverseMiddle(_ head: TreeNode<Int>?){
    guard let root = head else { return }
    traverseMiddle(root.left)
    print(root.val)
    traverseMiddle(root.right)
}

func traverseRear(_ head: TreeNode<Int>?){
    guard let root = head else { return }
    traverseRear(root.left)
    traverseRear(root.right)
    print(root.val)
}
let aa = TreeNode(value: 1, left: nil, right: nil)
let bb = TreeNode(value: 2, left: aa, right: nil)
let cc = TreeNode(value: 3, left: aa, right: bb)
let root = TreeNode(value: 4, left: bb, right: cc)

//前序遍历
traverseForward(root)
//中序遍历
traverseMiddle(root)
//后序遍历
traverseRear(root)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值