劍指 Offer 55 I 二叉樹的深度

2022-09-19 23:06:12 字數 1210 閱讀 5764

劍指 offer 55 - i. 二叉樹的深度

比較常見的遞迴,但是可能在面試過程中會要求要寫非遞迴寫法。

遞迴寫法:

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

private int deep(treenode node)

}

時間複雜度\(o(logn)\),空間複雜度\(o(1)\),其中n為節點數量,最多遍歷\(logn\)層。

非遞迴寫法:

①.層次遍歷

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

queueq = new arraydeque<>();

q.offer(root);

while(!q.isempty())

if(node.right != null)

}ans++;

}return ans;}}

②.非遞迴dfs

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

// 這裡不僅要存節點,還需要存節點的高度

stack> st = new stack<>();

int depth = 0, max = 0;

treenode cur = root;

while(!st.isempty() || cur != null)

var top = st.pop();

cur = top.getkey();

depth = top.getvalue();

max = math.max(max, depth);

cur = cur.right;

}return max;}}

劍指offer 55 I 二叉樹的深度

輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 節點總數 10000 數的遍歷可以分為 深度優先搜尋dfs 廣度...

劍指 Offer 55 I 二叉樹的深度

難度簡單27收藏分享切換為英文關注反饋 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最大深度 3 definition fo...

劍指 Offer 55 I 二叉樹的深度

劍指 offer 55 i.二叉樹的深度 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 9 20 15 7 返回它的最大深度 3 節點總數 10000 3....