示例1
输入:
{8,6,10,5,7,9,11},8
返回值:
9
示例2
输入:
{8,6,10,5,7,9,11},6
返回值
7
示例3
输入:
{1,2,#,#,3,#,4},4
返回值:
1
示例4
输入:
{5},5
返回值:
"null"
说明:
不存在,后台打印"null"
代码
/*
public class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode(int val) {
this.val = val;
}
}
*/
public class Solution {
TreeLinkNode queue[] = new TreeLinkNode[60];
int p = 1;
//寻找根节点
public TreeLinkNode findRoot(TreeLinkNode pNode) {
if (pNode == null) return null;
while (pNode.next != null) {
pNode = pNode.next;
}
return pNode;
}
public TreeLinkNode GetNext(TreeLinkNode pNode) {
TreeLinkNode root = findRoot(pNode);
dfs(root, pNode);
for(int i = 1; i < p ; i++){
//如何当前节点为指定节点,则返回它的下一个节点
if(queue[i].equals(pNode)){
return queue[i+1];
}
}
return root;
}
//中序遍历每个节点并存储。
public void dfs(TreeLinkNode root, TreeLinkNode target) {
if (root == null)return;
dfs(root.left, target);
queue[p++] = root;
dfs(root.right, target);
}
}