我是靠谱客的博主 大方大炮,最近开发中收集的这篇文章主要介绍领扣LintCode算法问题答案-242. 将二叉树按照层级转化为链表242. 将二叉树按照层级转化为链表鸣谢,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

领扣LintCode算法问题答案-242. 将二叉树按照层级转化为链表

目录

  • 242. 将二叉树按照层级转化为链表
  • 鸣谢

242. 将二叉树按照层级转化为链表

给一棵二叉树,设计一个算法为每一层的节点建立一个链表。也就是说,如果一棵二叉树有 D 层,那么你需要创建 D 条链表。

样例 1:

输入: {1,2,3,4}
输出: [1->null,2->3->null,4->null]

解释:

    1
   / 
  2   3
 /
4

样例 2:

输入: {1,#,2,3}
输出: [1->null,2->null,3->null]

解释:

1
 
  2
 /
3
/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    /**
     * @param root the root of binary tree
     * @return a lists of linked list
     */
    public List<ListNode> binaryTreeToLists(TreeNode root) {
        // Write your code here
        List<ListNode>  listNodes = new ArrayList<ListNode>();
        if (root != null) {
            Queue<TreeNode> nodes     = new LinkedList<TreeNode>();
            nodes.add(root);

            ListNode head = new ListNode(0);
            while (!nodes.isEmpty()) {
                int size = nodes.size();
                ListNode lastNode = head;
                while (size-- > 0) {
                    TreeNode treeNode = nodes.poll();
                    lastNode.next = new ListNode(treeNode.val);
                    lastNode = lastNode.next;

                    if (treeNode.left != null) {
                        nodes.offer(treeNode.left);
                    }
                    if (treeNode.right != null) {
                        nodes.offer(treeNode.right);
                    }
                }
                listNodes.add(head.next);
            }
        }
        return listNodes;
    }
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

最后

以上就是大方大炮为你收集整理的领扣LintCode算法问题答案-242. 将二叉树按照层级转化为链表242. 将二叉树按照层级转化为链表鸣谢的全部内容,希望文章能够帮你解决领扣LintCode算法问题答案-242. 将二叉树按照层级转化为链表242. 将二叉树按照层级转化为链表鸣谢所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(28)

评论列表共有 0 条评论

立即
投稿
返回
顶部