美文网首页
二叉树遍历/搜索

二叉树遍历/搜索

作者: R0lan | 来源:发表于2019-03-26 11:29 被阅读0次

    遍历

    1.宽度优先遍历BFS

    利用队列
    //Node head;
    LinkedList<Node> queue = new LinkedList<>();
    // 或者 java.ulti.Queue<Node> queue = new java.util.LinkedList<>();
    queue.add(head);
    while(!queue.isEmpty()){
        head = queue.pull();
        //各类处理函数
        if(head.left != null){
            queue.add(head.left);
        }
        if(head.right != null){
            queue.add(head.right);
        }
    }
    
    

    2.深度优先遍历DFS

    1.递归:前序中序后序

    //Node head;
    public class Solution {
        public static void recurIter(Node head){
            if (head == null){
                return;
    //先序处理
            recurlter(head.left);
    //中序处理
            recurlter(head.right);
    //后序处理
            }
        }
    }
    

    2.非递归:前序中序后序

    利用栈

    //Node head;
    Stack<Node> stack = new Stack<Node>();
    // 先序: 先打印当前节点,然后右子树和左子树依次进栈
    // 中序
    // 后序
    }
    

    相关文章

      网友评论

          本文标题:二叉树遍历/搜索

          本文链接:https://www.haomeiwen.com/subject/uvxgvqtx.html