求樹的最大深度
對稱二叉樹
路徑總和
1思路,自頂向下:
int answer;
// don't forget to initialize answer before call maximum_depth
void
maximum_depth
(treenode* root,
int depth)if(
!root-
>left &&
!root-
>right)
maximum_depth
(root-
>left, depth +1)
;maximum_depth
(root-
>right, depth +1)
;}
思路,自底向上:
int
maximum_depth
(treenode* root)
int left_depth =
maximum_depth
(root-
>left)
;int right_depth =
maximum_depth
(root-
>right)
;return
max(left_depth, right_depth)+1
;// return depth of the subtree rooted at root
}
ps:這種思路好理解吧,求根節點的深度,只需要求左子樹和右子樹的深度最大值+1。
2思路,遞迴(詳見注釋):
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
private
:bool
ismirror
(treenode* t1, treenode* t2)
};
思路,迭代(和上面類似,只不過用queue實現):
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
return
true;}
};
3思路,dfs
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solutionif(
!root-
>left &&
!root-
>right)
return
false
;//到葉子節點,val!= sum ,直接return false
}return
(dfs
(root-
>left, sum-root-
>val)
||dfs
(root-
>right, sum -root-
>val));
}bool
haspathsum
(treenode* root,
int sum)
};
思路,遞迴:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
};
leetcode 刷題記錄20200411 DP
題目 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。演算法解析 1 暴力法 基於字串每一位往兩邊找到最長回文字串 python class solution def longestpalindrome self,s str str 暴力法,從i位開始向兩邊找,...
筆試刷題總結
今天刷了一些筆試題,以下是刷完筆試題後看到的相關知識點的解析,做個小結。1 多型主要以兩種形式,靜態多型和動態多型,靜態多型主要實現了函式過載和運算子過載。動態多型主要實現了虛函式。虛函式是動態聯編,程式在執行的過程中確定呼叫哪乙個函式。2 int s 8 定義乙個指標陣列,該陣列中每個元素是乙個指...
Java刷題總結
public class hasstatic a.程式通過編譯,輸出結果為 x 102 b.程式通過編譯,輸出結果為 x 103 c.10行不能通過編譯.因為x星私有靜態變數 d.5行不能通過編譯.因為引用了私有靜態變數 解析 同乙個類內,private變數可以訪問,所以cd錯。由於x是static...