[LeetCode73]Populating Next Right Pointers in Each Node II
来源:互联网 发布:php include 来源 编辑:程序博客网 时间:2024/05/22 15:45
Follow up for problem "Populating Next Right Pointers in Each Node".
What if the given tree could be any binary tree? Would your previous solution still work?
Note:
- You may only use constant extra space.
For example,
Given the following binary tree,
1 / \ 2 3 / \ \ 4 5 7
After calling your function, the tree should look like:
1 -> NULL / \ 2 -> 3 -> NULL / \ \ 4-> 5 -> 7 -> NULL
Analysis:
与上一题类似,唯一的不同是每次要先找到一个第一个有效的next链接节点,并且递归的时候要先处理右子树,再处理左子树.
Java
public void connect(TreeLinkNode root) { if(root ==null) return; TreeLinkNode p = root.next; while(p!=null){ if(p.left!=null){ p = p.left; break; } if(p.right!=null){ p = p.right; break; } p = p.next; } if(root.right!=null) root.right.next = p; if(root.left!=null) root.left.next = root.right != null ? root.right:p; connect(root.right); connect(root.left); }
c++
void connect(TreeLinkNode *root) { if(root == NULL) return; TreeLinkNode *p = root->next; while(p != NULL){ if(p->left != NULL){ p = p->left; break; } if(p->right != NULL){ p = p->right; break; } p = p->next; } if(root->right != NULL){ root->right->next = p; } if(root->left != NULL){ root->left->next = root->right ? root->right : p; } connect(root->right); connect(root->left); }
0 0
- [LeetCode73]Populating Next Right Pointers in Each Node II
- 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 II
- LeetCode Populating Next Right Pointers in Each Node II
- [Leetcode] Populating Next Right Pointers in Each Node II
- [LeetCode] Populating Next Right Pointers in Each Node II
- leetcode 79: Populating Next Right Pointers in Each Node II
- [Leetcode] Populating Next Right Pointers in Each Node ii
- leetcode Populating Next Right Pointers in Each Node II
- 【leetcode】Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node II
- [Leetcode]Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node II
- Populating Next Right Pointers in Each Node (I & II)
- Cocos2dx小技巧(十)三种缓存类介绍
- swift菜鸟入门视频教程-04-集合类型
- KMP模式匹配算法实现
- 黑马程序员 java编程之面向对象学习笔记总结
- 高并发解决方案
- [LeetCode73]Populating Next Right Pointers in Each Node II
- Trie树学习1
- 更新Windows ActiveX,Ios
- JJY本地服务器以服务方式运行不能读取消息文件
- Java String学习
- 记不住android底层,libs,framework?
- LeetCode 35. Valid Sudoku
- Android 高效加载大图片
- 这里share一下我写的mpi版本的lr算法以及应用场景