题目描述:
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
思路:
1.利用next指针找出树的根节点
2.将中序遍历的结果存储在数组中
3.找出所求节点的下一个节点
/*function TreeLinkNode(x){
this.val = x;
this.left = null;
this.right = null;
this.next = null;
}*/
let arr = []
function GetNext(pNode)
{
// write code here
if(pNode === null)
return null;
let p = pNode;
while(p.next !== null){
p = p.next;
}
inOrder(p);
let index = arr.indexOf(pNode);
if(index === arr.length-1)
return null;
return arr[index+1]
}
//中序遍历
function inOrder(node){
if(node === null){
return null;
}
inOrder(node.left);
arr.push(node);
inOrder(node.right);
}