美文网首页
Swift-二叉树某一深度的链表

Swift-二叉树某一深度的链表

作者: FlyElephant | 来源:发表于2017-05-14 00:09 被阅读29次

题目:对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表(比如:若一棵树的深度为D,则会创建出D个链表).

核心代码:
<pre><code>` func createLevelList(node:TreeNode?) -> [[String]]? {
if node == nil {
return nil
}

    var lists:[[String]] = []
    createLevelLinkedList(root: node, lists: &lists, level: 0)
    return lists
}

func createLevelLinkedList(root:TreeNode?,lists:inout [[String]],level:Int) {
    if root == nil {
        return
    }
    
    if lists.count == level { // 当前level没有数据
        let levelData:[String] = [root!.data!]
        lists.append(levelData)
    } else {
         lists[level].append(root!.data!)
    }
    
    createLevelLinkedList(root: root?.leftChild, lists: &lists, level: level + 1)
    createLevelLinkedList(root: root?.rightChild, lists: &lists, level: level + 1)
}`<code></pre>

测试代码:
<pre><code>var searchLevelData:[[String]]? = binarySearchTree.createLevelList(node: searchNode) if searchLevelData != nil { print("FlyElephant---层级链表数据---\(searchLevelData!)") }</code></pre>

FlyElephant.png

相关文章

  • 求二叉树上某一深度上的所有节点,并用链表表示这些节点

    问题描述 给定一颗二叉树,创建包含有某一深度上所有节点的链表。即输入一颗二叉树和要求的深度,返回一个链表。也就是求...

  • 求二叉树上某一深度上的所有节点,并用链表表示这些节点

    问题描述 给定一颗二叉树,创建包含有某一深度上所有节点的链表。即输入一颗二叉树和要求的深度,返回一个链表。也就是求...

  • Swift-二叉树某一深度的链表

    题目:对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表(比如:若一棵树的深度为D,则会创建出D个链...

  • 输出单层结点

    题目: 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode...

  • 面试题汇总(数据结构)

    数据结构和算法 链表 二叉树 二叉树的最大深度[https://leetcode-cn.com/problems/...

  • 2020-10-28

    快排 链表反转 链表反转 二叉树非递归实现 按层排序 二叉树深度 合并有序数组 二分查找 有序数组 查找 楼梯问题

  • LeetCode0305

    461. 汉明距离 617. 合并二叉树 226. 翻转二叉树 104. 二叉树的最大深度 206. 反转链表 2...

  • 二叉树与图

    二叉树深度搜索 1. 路径总和 II 前序操作和后序操作结合: 2.二叉树的最近公共祖先 3. 二叉树展开为链表...

  • 经典算法题

    涉及:二叉树,遍历,深度广度遍历,快排,冒泡,单链表 二叉树: 1.给你一个二叉树,要你打印输出所有路径。http...

  • [二叉树] 特定深度节点链表

    前言 接上篇,将二叉树的层序遍历进行应用 题目 特定深度节点链表[https://leetcode-cn.com/...

网友评论

      本文标题:Swift-二叉树某一深度的链表

      本文链接:https://www.haomeiwen.com/subject/clexxxtx.html