
关注
【题目】
现在有一种新的二叉树节点类型如下:
public class Node {
public int value;
public Node left;
public Node right;
public Node parent;
public Node(int data) {
this.value = data;
}
}
该结构比普通二叉树节点结构多了一条指向父节点的parent指针。假设有一棵Node类型的节点组成的二叉树,树中每个节点的parent指针都正确的指向自己的父节点,头节点的parent指向null。只给一个在二叉树中的某个节点node,请实现返回node的后继节点的函数。在二叉树的中序遍历的序列中,node的下一个节点叫做node的后继节点。
例如,下图的二叉树:
__________6__________
/ \
___3___ ___9___
/ \ / \
1__ 4__ __8 10
\ \ /
2 5 7
中序遍历的结果为:1,2,3,4,5,6,7,8,9,10
所以节点1的后继为节点2,节点2的后继为节点3,…,节点10的后继为null
public Node getNextNode(Node node) {
if (node == null) {
return node;
}
if (node.right != null) {
return getLeftMost(node.right);
} else {
Node parent = node.parent;
while (parent != null && parent.left != node) {
node = parent;
parent = node.parent;
}
return parent;
}
}
public Node getLeftMost(Node node) {
if (node == null) {
return node;
}
while (node.left != null) {
node = node.left;
}
return node;
}
查看原帖
点赞 6
相关推荐
03-27 17:33
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
20041次浏览 389人参与
# 我的工作日记 #
95294次浏览 1255人参与
# 毕业季,给职场新人一些建议 #
17139次浏览 313人参与
# 辞职之后最想做的一件事 #
9375次浏览 151人参与
# 我的实习日记 #
2428262次浏览 25344人参与
# 晒一晒你收到的礼盒 #
61094次浏览 368人参与
# Offer比较,求稳定还是求发展 #
48413次浏览 235人参与
# 你想吐槽公司的哪些规定 #
16354次浏览 65人参与
# 薪资一样,你会选择去大厂还是小公司 #
15569次浏览 99人参与
# 选offer应该考虑哪些因素 #
15083次浏览 252人参与
# 第一份工作应该只看薪资吗 #
138027次浏览 1454人参与
# 为了秋招你都做了哪些准备? #
10343次浏览 156人参与
# 你怀疑过自己的专业选择吗? #
17074次浏览 201人参与
# 牛客十周岁生日快乐 #
129152次浏览 1515人参与
# 秋招想进国企该如何准备 #
57324次浏览 372人参与
# 在国企工作的人,躺平了吗? #
327120次浏览 3840人参与
# 你想留在一线还是回老家? #
37192次浏览 445人参与
# 你小时候最想从事什么职业 #
90891次浏览 1700人参与
# 工作后会跟朋友渐行渐远吗 #
21154次浏览 168人参与
# 机械人还在等华为开奖吗? #
216673次浏览 1095人参与