Populating Next Right Pointers in Each Node I/II

要点:stack在traversal中的作用是回到root,这题只需要2层之间的关联。所以不需要stack来track。这题就归结为通过当前层连接下一层然后再到下一层。所以code pattern是
while root:
while root:
第一个是track下一层的最左结点,第二层是本层链表的顺序访问。
I的连接范围局限在root,所以比较简单(只需要root.left连root.right,然后root.right连root.next的left)。而II因为不确定性,本质就是更新prev和next (初始为null):next用来track头,prev用来track前一个

# Definition for binary tree with next pointer.
# class TreeLinkNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#         self.next = Noneclass Solution(object):def connect(self, root):""":type root: TreeLinkNode:rtype: nothing"""if not root: returnwhile root.left:cur = rootwhile cur:cur.left.next = cur.rightif cur.next:cur.right.next = cur.next.leftcur = cur.nextroot = root.left

转载于:https://www.cnblogs.com/absolute/p/Leetcode.html

边工作边刷题:70天一遍leetcode: day 2相关推荐

  1. 边工作边刷题:70天一遍leetcode: day 94-1

    Largest BST Subtree 要点: http://articles.leetcode.com/largest-binary-search-tree-bst-in 这题重点是理解题意,还有道 ...

  2. 边工作边刷题:70天一遍leetcode: day 11-2

    Gas Station 老题,这种circular的题一般都能转化成单向的.比如这题就是用sumDiff来判断是否有解,而start单向递增. class Solution(object):def c ...

  3. 边工作边刷题:70天一遍leetcode: day 92

    House Robber I/II/III 这题代表了单向线性dp的基本pattern: build local best value at each element and track the gl ...

  4. 边工作边刷题:70天一遍leetcode: day 98

    LRU Cache 这是一道leetcode的难题,这种题往往是算法结构很复杂,涉及一个或多个考点算法和数据结构的组合,同时又有很多corner cases要考虑.所以一定要找到合适memorize的 ...

  5. 边工作边刷题:70天一遍leetcode: day 97-2

    Design Hit Counter 要点:因为是second granularity,所以可以用以秒为单位的circular buffer方法.这题简单在只需要count过去300秒的,增加难度可以 ...

  6. 边工作边刷题:70天一遍leetcode: day 73

    Read N Characters Given Read4 I/II 要点:这题的要点就是搞清楚几个变量的内在逻辑:只有buffer是整4 bytes的.而client要读的bytes(需求)和实际上 ...

  7. 边工作边刷题:70天一遍leetcode: day 7

    Max Points on a Line 要点:这题暴力解是用任何两点确定一条直线,然后对其他点检查是否共线,显然,这里没用空间来存储之前的检查结果,所以time complexity是O(n^3). ...

  8. 边工作边刷题:70天一遍leetcode: day 67-1

    Rectangle Area 要点:基本思路就是先分开算再减去相交部分,这题的难点是如何检查是否相交和如何算出相交部分的面积. 2d转化为1d:x轴和y轴是orthogonal的.可以分开考虑.这样检 ...

  9. 边工作边刷题:70天一遍leetcode: day 6

    Compare Version Numbers 题本身思路简单没什么可说的.值得一提的是corner case:多出来的0和没有是相同版本,这样最简单的处理是直接对没有的补0.这样因为需要补齐,循环是 ...

  10. 边工作边刷题:70天一遍leetcode: day 11-1

    Clone Graph dfs或者bfs都可以做,这题的要点是hashmap有两个作用:一是图遍历中的visited,另一个是存copy的结点来连接neighbors.hashmap即表示visite ...

最新文章

  1. 计算机语言中索引什么意思,算法索引
  2. R语言生成对数线性间隔数据序列(Log-linearly Spaced Sequences)
  3. iphone5登陆不了微信,提示“登录失败,连接失败,请检查网络设置”
  4. 基本的Socket通信
  5. 两届诺贝尔文学奖得主将同时公布
  6. 训练集、测试集loss容易出现的问题总结
  7. Data Integration Introduction
  8. 微软、google、IBM的某些招聘试题
  9. python爬取百度首页源代码并存储到HTML文件里
  10. linux登录界面鼠标键盘失灵,vmware+centos7+启动在登录界面鼠标键盘都不可用
  11. ajax 提交间隔,jQuery+Ajax实现限制查询间隔的方法
  12. 移植mysql到安卓手机_记录dbnet文本检测转ncnn并移植到安卓上
  13. c语言课程设计 日历显示,c语言课程设计_电子日历.doc
  14. 使用github制作简历
  15. 按下鼠标中键跳转新的页面
  16. LabVIEW之TDMS学习笔记
  17. 【区块链与密码学】第9-1讲:白话群签名
  18. Python后台运行 -- nohup python xxx.py
  19. 生成图片验证码(Pillow)
  20. 数据采样 22382份,如何才能学好Python并找到工作

热门文章

  1. jetty-maven-plugin
  2. XML-RPC 实现C++和C#交互
  3. ORA-24042 ORA-12545 ORA-26714 bug(Bug 5623403)
  4. Map Reduce学习
  5. 数字证书(Certificate)
  6. Java 设计模式 代理模式
  7. 坑爹!Quartz 重复调度问题,你遇到过么?
  8. 宝贝,后端接口如何提高性能?
  9. 不会优化数据库,早晚被优化!
  10. 今天终于搞懂了:为什么Java的main方法必须是public static void?