zoukankan      html  css  js  c++  java
  • [leetcode]Populating Next Right Pointers in Each Node

    这道题目如果不用常数级的空间是很容易的,就是用一个queue呗。

    public class Solution {
        public void connect(TreeLinkNode root) {
            LinkedList<TreeLinkNode> queue = new LinkedList<TreeLinkNode>();
            queue.offer(root);
            int count = 0;
            int lastCount = 0;
            TreeLinkNode last = null;
            while (queue.size() != 0)
            {
                TreeLinkNode n = queue.poll();
                if (n == null) continue;
                count++;
                if (last != null) last.next = n;
                if (lastCount == 0 || count == lastCount * 2)
                {
                    lastCount = count;
                    count = 0;
                    n.next = null;
                    last = null;
                }
                else {
                    last = n;
                }
                queue.offer(n.left);
                queue.offer(n.right);
            }
        }
    }
    

    但是题目要求常数级空间,怎么办呢?当时想啊,如果没有queue可怎么做到同一层从左到右遍历啊,后来搜索了之后发现其实可以用next指针嘛。其他还有递归法,精神就一样了。参见:http://blog.csdn.net/ithomer/article/details/8796542

    public class Solution {
        public void connect(TreeLinkNode root) {
            TreeLinkNode left = root;
            TreeLinkNode n = null;
            while (left != null && left.left != null && left.right != null)
            {
                n = left;
                while (n != null)
                {
                    n.left.next = n.right;
                    if (n.next != null)
                    {
                        n.right.next = n.next.left;
                    }
                    n = n.next;
                }
                left = left.left;
            }
        }
    }
    

      

  • 相关阅读:
    安卓android.support.design使用中的问题
    处理requests SSl 证书问题
    python-excel
    post 请求包含相同参数
    关于zk 页面滚动问题 scroll
    Usefull Jquery
    Git 安装
    Comparison issues in TD
    Work Diary 12/13/17
    Unit10 I don't like work in the weekend
  • 原文地址:https://www.cnblogs.com/lautsie/p/3288102.html
Copyright © 2011-2022 走看看