劍指 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....