leetcode 每日一题 117 填充每个节点的下一个右侧节点指针 II
发布日期:2021-05-13 22:23:31 浏览次数:18 分类:精选文章

本文共 3310 字,大约阅读时间需要 11 分钟。

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ O(n)���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������

  • ���������������������������������next���nextStart���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
  • ���������������������start���������������������������������������next���������������������������������nextStart������������������������������������������������������������
  • ������������������connectOne������������������������������������������������������������next���nextStart������������������������������������������������������
  • ������������������������start������ null ���������������������������������������������������
  • ���������������

    public class lc117 {
    Node next = null, nextStart = null; // used to store next node in level and starting nodes of next level
    public Node connect(Node root) {
    if (root == null) return null;
    Node start = root;
    while (start != null) {
    next = null;
    nextStart = null;
    for (Node p = start; p != null; p = p.next) {
    // Process left child
    if (p.left != null) {
    if (next == null) {
    nextStart = connectOne(p.left);
    } else {
    next.next = p.left;
    }
    }
    // Process right child
    if (p.right != null) {
    connectOne(p.right);
    }
    }
    start = nextStart;
    }
    return root;
    }
    public void connectOne(Node node) {
    if (next == null) {
    next = node;
    nextStart = node;
    } else {
    next.next = node;
    }
    }
    }

    ���������������

  • connect���������������������������������������������������������������������������������������������������������nextStart���������������������������������
  • connectOne���������������������������������������������������������������������������������next���nextStart���
  • ������������������������next������������������������������������������������nextStart������������������������������������������������������������������������
  • ������������������������start������ null ������������������������������������������������������������
  • ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� O(n) ��������������������������������������� O(1)���������������������������������������

    上一篇:leetcode 14 最长公共前缀 奇淫巧技
    下一篇:leetcode 剑指offer 54 二叉搜索树的第k大节点

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月12日 14时45分24秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章