• 面试题8: 二叉树的下一个节点


    给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。

    注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。


    /*
    public class TreeLinkNode {
        int val;
        TreeLinkNode left = null;
        TreeLinkNode right = null;
        TreeLinkNode next = null;

        TreeLinkNode(int val) {
            this.val = val;
        }
    }
    */

    class
    Solution { public TreeLinkNode GetNext(TreeLinkNode pNode) { if(pNode==null){ return null; } TreeLinkNode tln=null; //右节点非空,是右节点最左边的节点 if(pNode.right!=null){ tln=pNode.right; while(tln.left!=null){ tln=tln.left; } }else{//右子树为空,无父节点 if(pNode.next==null){ return null; } //右子树为空,存在父节点 if(pNode.next.left==pNode){//是父节点的左子树 tln=pNode.next; }else{//是父节点的右子树 while(pNode.next!=null && pNode==pNode.next.right){ pNode=pNode.next; } if(pNode.next!=null){ tln=pNode.next; } } } return tln; } }
  • 相关阅读:
    TCP通信丢包原因总结
    根据日志查看QPS
    mysql:备份、复制
    集群
    redis性能提升
    redis源码——多机数据库的实现
    redis源码——单机数据库的实现
    redis 设置过期Key 的 maxmemory-policy 六种方式
    字符处理
    贝塞尔曲线
  • 原文地址:https://www.cnblogs.com/Allen-win/p/8093687.html
Copyright © 2020-2023  润新知