オファー-8は、バイナリツリーの次のノードを獲得します
タイトル:
バイナリーツリーとなっているノードを考えると、先行順走査順とリターンの次のノードを見つけます。ツリー内のノードは、左と右の子ノードではないだけを含むことに注意してください、親ノードは、を指すポインタが含まれています。
アイデア:
- 右側のノード、ダイレクト印刷
- 右側のノードなし
- このノードの左の親ノードは、自身のプリントであります
- このノードの右親ノードが満たし2.1まで、見上げ続ける、自分自身であります
自身の答え:
/*
public class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public TreeLinkNode GetNext(TreeLinkNode pNode)
{
if(pNode == null) return null;
TreeLinkNode next = null;
if(pNode.right != null){
TreeLinkNode pRight = pNode.right;
while(pRight.left != null)
pRight = pRight.left;
next = pRight;
}else if(pNode.next != null){
TreeLinkNode curNode = pNode;
TreeLinkNode pParrent = pNode.next;
while(pParrent != null && pParrent.right == curNode){
curNode = pParrent;
pParrent = pParrent.next;
}
next = pParrent;
}
return next;
}
}
間違い:
注意:
答えに誰か: