题目来源:

  https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/


题意分析:

  根据上一题,如果给定的树不是完全树同层的连接。要求常数空间时间复杂度。如:

         1
/ \
2 3
/ \ \
4 5 7
结果是:
         1 -> NULL
/ \
2 -> 3 -> NULL
/ \ \
4-> 5 -> 7 -> NULL

题目思路:

  用两个指针来记录下一个指针和下一层第一个指针。


代码(python):

  

 # 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 = None class Solution(object):
def connect(self, root):
"""
:type root: TreeLinkNode
:rtype: nothing
"""
if root:
tmp,tmp1,tmp2 = root,None,None
while tmp:
if tmp.left:
if tmp1:
tmp1.next = tmp.left
tmp1 = tmp.left
if not tmp2:
tmp2 = tmp1
if tmp.right:
if tmp1:
tmp1.next = tmp.right
tmp1 = tmp.right
if not tmp2:
tmp2 = tmp1
tmp = tmp.next
self.connect(tmp2)

最新文章

  1. OpenSessionInViewFilter配置和作用
  2. debian C++ OTL库 用 unixodbc 连接 mysql 小记
  3. [译]学习IPython进行交互式计算和数据可视化(二)
  4. 关于position:absolute的困惑
  5. HTML中doctype以及target论述
  6. cesium调用天地图服务
  7. ThreadLocal类的理解
  8. [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
  9. 11个有用的移动网页开发App和HTML5框架
  10. PHP - 遍历文件夹下的所有文件名
  11. TestNG中的DataProvider返回Iterator<Object[]>的妙用
  12. Mysql的收获
  13. angularjs-1.3代码学习 模块
  14. 201521123027 <java程序设计>第八周学习总结
  15. 记录C#常用的代码片段
  16. BZOJ4543[POI2014]Hotel加强版——长链剖分+树形DP
  17. 20155333 2016-2017-2 《Java程序设计》第六周学习总结
  18. [LeetCode&Python] Problem 836. Rectangle Overlap
  19. 百度 echarts
  20. Mac idea 执行testng用例,提示%MODULE_WORKING_DIR%目录不存在解决办法

热门文章

  1. English - when用法
  2. Labview学习之远程控制VI
  3. hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)
  4. 替换 window.location当中的某个参数的值(而其它值不变)JS代码
  5. 决策树ID3算法[分类算法]
  6. python cmd命令调用
  7. js跨域及解决方法
  8. AndroidStudio 使用Hide API
  9. jdk、jre与jvm的区别与联系
  10. Stitch Fix 融资1200万美元,又一个时尚创业的哈佛女MBA |华丽志