LeetCode-Populating Next Right Pointers in Each Node-填充结点的右指针-二叉树递归
2014-10-14 20:28
471 查看
https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/
构造一个按深度索引的数组,存储的当前遍历的结点在这一层的最右边的结点。
由前序遍历的特点可知同一层左边的儿子先被访问,过一段时间后会访问右边的儿子。利用这个特点连接next数组即可。
需要注意vec.size()-1在vec=0时不是-1,而是一个很大的整数(溢出了)。
构造一个按深度索引的数组,存储的当前遍历的结点在这一层的最右边的结点。
由前序遍历的特点可知同一层左边的儿子先被访问,过一段时间后会访问右边的儿子。利用这个特点连接next数组即可。
需要注意vec.size()-1在vec=0时不是-1,而是一个很大的整数(溢出了)。
/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *right, *next; * TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {} * }; */ typedef TreeLinkNode scnode; class Solution { public: vector<scnode *> ps; void PreOrder(scnode *rt,int l){ if (rt==NULL) return; if (l+1>ps.size()){ ps.push_back(NULL); } if (ps[l]!=NULL) ps[l]->next=rt; ps[l]=rt; rt->next=NULL; PreOrder(rt->left,l+1); PreOrder(rt->right,l+1); } void connect(TreeLinkNode *root) { PreOrder(root,0); } };
相关文章推荐
- Leetcode 117 Populating Next Right Pointers in Each Node II 二叉树填充next指针指向右侧结点 II
- Leetcode 116 Populating Next Right Pointers in Each Node 二叉树填充next指针指向右侧结点
- leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
- LeetCode OJ 之 Populating Next Right Pointers in Each Node II(为每个结点填充右指针-二)
- [LeetCode 116 117] - 填充每一个节点的指向右边邻居的指针I & II (Populating Next Right Pointers in Each Node I & II)
- leetCode 116.Populating Next Right Pointers in Each Node (为节点填充右指针) 解题思路和方法
- LeetCode OJ 之 Populating Next Right Pointers in Each Node (为每个结点填充右指针)
- [LeetCode] Populating Next Right Pointers in Each Node II 每个节点的右向指针之二
- 【二叉树的递归】06填充每个节点中的下一个正确的指针【Populating Next Right Pointers in Each Node】
- (Java) LeetCode 116. Populating Next Right Pointers in Each Node —— 填充同一层的兄弟节点
- [LeetCode] Populating Next Right Pointers in Each Node 每个节点的右向指针
- [Leetcode] Populating next right pointer in each node ii 填充每个节点的右指针
- 【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】
- LeetCode—***Populating Next Right Pointers in Each Node寻找树的层次上的右指针
- [Leetcode] Populating Next Right Pointers in Each Node 二叉树Next指针
- populating-next-right-pointers-in-each-node(填充每个节点中右下角的指针)
- 【LeetCode-面试算法经典-Java实现】【117-Populating Next Right Pointers in Each Node(二叉树链接右指针II)】
- [Leetcode] Populating next right pointer in each node 填充每个节点的右指针
- [LeetCode] 116. Populating Next Right Pointers in Each Node 每个节点的右向指针