【LeetCode with Python】 Populating Next Right Pointers in Each Node
来源:互联网 发布:12306订票软件 编辑:程序博客网 时间:2024/06/10 04:21
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/
题目类型:
难度评价:★
本文地址:http://blog.csdn.net/nerv3x3/article/details/36897435
原题页面:https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/
题目类型:
难度评价:★
本文地址:http://blog.csdn.net/nerv3x3/article/details/36897435
Given a binary tree
struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }
Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set toNULL
.
Initially, all next pointers are set to NULL
.
Note:
- You may only use constant extra space.
- You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children).
For example,
Given the following perfect binary tree,
1 / \ 2 3 / \ / \ 4 5 6 7
After calling your function, the tree should look like:
1 -> NULL / \ 2 -> 3 -> NULL / \ / \ 4->5->6->7 -> NULL
类似于层次遍历的方法,参考Binary Tree Level Order Traversal这道题的代码,其实就是在其基础上加上了对一层结点的next指针的处理逻辑。
此外,这道题的衍生版本Populating Next Right Pointers in Each Node II与本题的区别是,本题是完全二叉树,而Populating Next Right Pointers in Each Node II却可能是任意结构的二叉树。但本题的代码对于这两道题都可以通过。
(但是本题代码可能不符合题意要求,题目要求消耗常量空间)
# Definition for a binary tree nodeclass TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None self.next = Noneclass Solution: # @param root, a tree node # @return nothing def connect(self, root): if None == root: return [ ] reflist1 = [root] while True: reflist2 = [ ] for i in range(0, len(reflist1)): cur = reflist1[i] if None != cur.left: reflist2.append(cur.left) if None != cur.right: reflist2.append(cur.right) if 0 == len(reflist2): break len_l = len(reflist2) for i in range(0, len_l - 1): reflist2[i].next = reflist2[i + 1] reflist2[len_l - 1].next = None reflist1 = reflist2
0 0
- 【LeetCode with Python】 Populating Next Right Pointers in Each Node
- Populating Next Right Pointers in Each Node Python Java Leetcode
- 【LeetCode with Python】 Populating Next Right Pointers in Each Node II
- 【LeetCode】Populating Next Right Pointers in Each Node Populating Next Right Pointers in Each Node II
- leetcode Populating Next Right Pointers in Each Node &&Populating Next Right Pointers in Each Node||
- LeetCode Populating Next Right Pointers in Each Node & Populating Next Right Pointers in Each Node I
- 【Leetcode】Populating Next Right Pointers in Each Node in JAVA
- LeetCode Populating Next Right Pointers in Each Node
- LeetCode Populating Next Right Pointers in Each Node II
- [Leetcode] Populating Next Right Pointers in Each Node
- LeetCode: Populating Next Right Pointers in Each Node
- [Leetcode] Populating Next Right Pointers in Each Node II
- [LeetCode] Populating Next Right Pointers in Each Node
- [LeetCode] Populating Next Right Pointers in Each Node II
- 【leetcode】 Populating Next Right Pointers in Each Node
- leetcode 78: Populating Next Right Pointers in Each Node
- leetcode 79: Populating Next Right Pointers in Each Node II
- Leetcode: Populating Next Right Pointers in Each Node
- cas单点登录
- 笑死时间后当为8不禁竿
- 顺序ft档翻译塞心里匀
- 套餐开发if注射今天径
- 如何开发档翻译时戏以颗
- 【LeetCode with Python】 Populating Next Right Pointers in Each Node
- Javascript常用正则表达式汇总
- sqlserver中的substring用法,oracle的substr,js中的substring
- 有关滚动条问题解决方法
- The Swift Programming Language4
- ZBarReaderView的设定扫描范围
- SaS稳定分布函数(symmetric D -stable distribution)
- 使用Nexus2.x为Maven3.x搭建私服构件仓库 转http://gao-xianglong.iteye.com/blog/1735536
- CSS滤镜(实例解析)转载但是自己测测