二叉树的下一个节点

二叉树的下一个结点

http://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e

public class Solution {
//新建linkedlist,来记录中序遍历的结果,方便查找
LinkedList<treelinknode> linkedList=new LinkedList<>();
TreeLinkNode node=null;
public TreeLinkNode GetNext(TreeLinkNode pNode)
{
//首先找到根节点,中序遍历
TreeLinkNode p=pNode;
while (p.next!=null){
p=p.next;
}
//中序遍历
InOrder(p);
for (int i=0;i<linkedList.size();i++){
//从集合中找到指定节点的的位置
boolean equals = linkedList.get(i).equals(pNode);
if(equals==true){
//如果此位置是最后的,那他的下一个节点就是空
if(i==linkedList.size()-1){
return null;
}
//是集合中除了最后一个节点的位置,那下一个索引位置i+1就是中序遍历的下一个节点的位置
node = linkedList.get(i + 1);
}
}
return node;
}
public void InOrder(TreeLinkNode node){
if(node!=null){
InOrder(node.left);
linkedList.add(node);
InOrder(node.right);
}
}</treelinknode>

全部评论

相关推荐

07-18 18:09
门头沟学院 Java
点赞 评论 收藏
分享
07-03 16:13
嘉应学院 Python
xiaolihuam...:很明显骗子,如果是hr直接约你面试了,哪用得着内推,如果是员工的话,你得多优秀,一线员工直接加你微信,
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-25 18:29
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务