二叉树的深度

非递归写法:层次遍历

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

import java.util.Queue;

import java.util.LinkedList;

public class Solution {

    public int TreeDepth(TreeNode pRoot)

    {

        if(pRoot ==null){

            return 0;

        }

        Queue<TreeNode> queue =new LinkedList<TreeNode>();

        queue.add(pRoot);

        int depth =0, count =0, nextCount =1;

        while(queue.size()!=0){

            TreeNode top = queue.poll();

            count++;

            if(top.left !=null){

                queue.add(top.left);

            }

            if(top.right !=null){

                queue.add(top.right);

            }

            if(count == nextCount){

                nextCount = queue.size();

                count =0;

                depth++;

            }

        }

        return depth;

    }

}

递归写法,比较简单,不解释:

1

2

3

4

5

6

7

8

9

10

11

12

import java.lang.Math;

public class Solution {

    public int TreeDepth(TreeNode pRoot)

    {

        if(pRoot ==null){

            return 0;

        }

        int left = TreeDepth(pRoot.left);

        int right = TreeDepth(pRoot.right);

        return Math.max(left, right) +1;

    }

}

 咱不解释


版权声明:本文为m0_63703905原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。