二叉树(一):中序序遍历(递归和非递归)

一、二叉树-中序遍历:左>头>右

1. 递归实现

    //中序  左中头
    public static void in(Node head) {
        if (head == null) return;
        in(head.left);
        System.out.print(head.value + ", ");
        in(head.rigth);
    }

2. 非递归实现

使用栈集合存储节点数据,完成非递归实现

public static void in(Node head) {
        System.out.println("in----------------");
        if (head != null) {
            Stack<Node> stack = new Stack<>();
            Node cur = head;
            while (!stack.isEmpty() || cur != null) {
                if (cur != null) {
                    stack.push(cur);
                    cur = cur.left;
                } else {
                    cur = stack.pop();
                    System.out.print(cur.value + ", ");
                    cur = cur.right;
                }
            }

        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容