算法题解及思考
前言
用于記錄刷題心得。
內容包括題號、題目、題解、心得。
104. 二叉樹的最大深度
題目
題解代碼1
/* Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};*/class Solution { public:int maxDepth(TreeNode* root) {if (root==NULL) return 0;else{int depth_l = maxDepth(root->left);int depth_r = maxDepth(root->right);if(depth_l<=depth_r) return depth_r+1;else return depth_l+1;}} };題解代碼2
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:int maxDepth(TreeNode* root) {if (root == NULL) return 0;int ret1 = 1 + maxDepth(root->left);int ret2 = 1 + maxDepth(root->right);return ret1 > ret2 ? ret1 : ret2;} };心得💗
在題解代碼1中,代碼是:
if(depth_l<=depth_r) return depth_r+1; else return depth_l+1;在題解代碼2中,代碼是:
return ret1 > ret2 ? ret1 : ret2;理解這道題時,題解代碼2是比較直觀的,它直接站在宏觀的角度去思考,
而題解代碼1容易讓我想去了解每一個結點的遍歷過程,這樣子就會給思想上帶來一些困擾,
但他們本質是一樣的。所以做遞歸的題,要從全局考慮:遞歸函數的作用是“確定”的,直接用即可。
總結
- 上一篇: python之turtle库(画图)
- 下一篇: 作者:伍筱聪(1989-),女,中国科学