ツリーの次のノード(Java実装)
914 ワード
本題は剣指offer面接問題58
牛客網テスト住所:https://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e
[プログラミング問題]ツリーの次のノード
熱指数:31242時間制限:1秒空間制限:32768 K ツリーとノードの1つを指定します.シーケンスの次のノードを見つけて返します.ツリーのノードには、左右のサブノードだけでなく、親ノードへのポインタも含まれています.
Javaコード:
牛客網テスト住所:https://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e
[プログラミング問題]ツリーの次のノード
熱指数:31242時間制限:1秒空間制限:32768 K ツリーとノードの1つを指定します.シーケンスの次のノードを見つけて返します.ツリーのノードには、左右のサブノードだけでなく、親ノードへのポインタも含まれています.
Javaコード:
package go.jacob.day609;
public class Demo1 {
public TreeLinkNode GetNext(TreeLinkNode pNode) {
if (pNode == null)
return null;
TreeLinkNode tmp = null;
// pNode
if (pNode.right == null) {
tmp = pNode;
//
while (tmp.next != null && tmp == tmp.next.right)
tmp = tmp.next;
return tmp.next == null ? null : tmp.next;
}
// ,
tmp = pNode.right;
while (tmp.left != null) {
tmp = tmp.left;
}
return tmp;
}
class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode(int val) {
this.val = val;
}
}
}