博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Populating Next Right Pointers in Each Node II leetcode java
阅读量:7050 次
发布时间:2019-06-28

本文共 1129 字,大约阅读时间需要 3 分钟。

题目

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 题解:  这道题跟I的区别就是binary tree不是完全二叉树。  所以root.right.next就不一定等于root.next.left。  所以,目标就是先确定好root的右孩子的第一个有效next连接点,然后再处理左孩子。 代码如下:
 1     
public 
void connect(TreeLinkNode root) {  
 2         
if (root == 
null
 3             
return;  
 4   
 5         TreeLinkNode p = root.next;  
 6         
/*
 7 
        因此,这道题目首要是找到右孩子的第一个有效的next链接节点,然后再处理左孩子。然后依次递归处理右孩子,左孩子
 8 
        
*/
 9         
while (p != 
null) {  
10             
if (p.left != 
null) {  
11                 p = p.left;  
12                 
break;  
13             }  
14             
if (p.right != 
null) {  
15                 p = p.right;  
16                 
break;  
17             }  
18             p = p.next;  
19         }  
20   
21         
if (root.right != 
null) {  
22             root.right.next = p;  
23         }  
24   
25         
if (root.left != 
null) {
26             
if(root.right!=
null)
27                 root.left.next = root.right;
28             
else
29                 root.left.next = p;
30         }  
31   
32         connect(root.right);
33         connect(root.left);
34     } 
 

转载地址:http://qkdol.baihongyu.com/

你可能感兴趣的文章
《Ext JS实战》——1.7 小结
查看>>
Hadoop上小文件存储处理
查看>>
优秀的开源系统恢复软件
查看>>
《网页设计与前端开发 Dreamweaver+Flash+Photoshop+HTML+CSS+JavaScript 从入门到精通》——2.3 HTML头部标记head...
查看>>
《Adobe Flash CS6中文版经典教程》——1.11 保存影片
查看>>
Java核心技术卷I基础知识3.6.3 不可变字符串
查看>>
《大数据导论》一2.3 业务流程管理
查看>>
Android--短信拦截及IP拨号
查看>>
线程的优先级
查看>>
AM335x(TQ335x)学习笔记——WM8960声卡驱动移植
查看>>
从EXCHANGE 2010的DAG中删除其中一个MEMBER
查看>>
Ehcache学习笔记
查看>>
Tomcat 内存溢出对应解决方式
查看>>
Mac下 Thinkphp3.2 语言包问题
查看>>
你意想不到的的编程问题
查看>>
Web Service学习总结
查看>>
新手学JAVA(七)----Override VS Overload
查看>>
二、引入字体图标--iconfont
查看>>
阿里巴巴实习生招聘开始啦
查看>>
浏览器的线程和进程
查看>>