每日程式設計(二十二) 二叉樹

2021-09-11 18:50:58 字數 1352 閱讀 7999

題目描述:

給定乙個二叉搜尋樹, 找到該樹中兩個指定節點的最近公共祖先。

例如,給定如下二叉搜尋樹: root = [6,2,8,0,4,7,9,null,null,3,5]

示例 1:

輸入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8

輸出: 6

解釋: 節點 2 和節點 8 的最近公共祖先是 6。

示例 2:

輸入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4

輸出: 2

解釋: 節點 2 和節點 4 的最近公共祖先是 2, 因為根據定義最近公共祖先節點可以為節點本身。

分析:這道題很明顯就是考察二叉搜尋樹的特性,如果兩個結點在根節點兩側,那就直接返回結點,如果在左側,就遞迴左節點與兩個指定節點,反之一樣

**:

/**

* definition for treenode.

* type treenode struct

*/ func lowestcommonancestor(root, p, q *treenode) *treenode else if root.val題目描述:例如,給定如下二叉樹: root = [3,5,1,6,2,0,8,null,null,7,4]

示例 1:

輸入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1

輸出: 3

解釋: 節點 5 和節點 1 的最近公共祖先是節點 3。

示例 2:

輸入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4

輸出: 5

解釋: 節點 5 和節點 4 的最近公共祖先是節點 5。因為根據定義最近公共祖先節點可以為節點本身。

分析:lca演算法,類似於深度優先遍歷的思想

**:/**

* definition for treenode.

* type treenode struct

*/ func lowestcommonancestor(root, p, q *treenode) *treenode

if root==p || root==q

left:=lowestcommonancestor(root.left,p,q)

right:=lowestcommonancestor(root.right,p,q)

if left!=nil && right !=nilelse if left !=nilelse

return nil

}

二十二 二進位制日誌記錄方式

二進位制日誌記錄方式 ddl 資料庫定義語言 dcl 資料庫控制語言 dml 資料庫操縱語言 對於ddl記錄的是sql語句,如create alter drop等 對於dcl記錄的是sql語句,如設定或更改資料庫使用者或角色許可權的語句等 對於dml記錄的是已提交的事務,如如select updat...

python程式設計基礎之二十二

字典 字典屬於可變物件,但是不屬於序列,內部是通過雜湊方式儲存的,內部儲存的是乙個個鍵值對key value 字典的鍵是唯一的,字典查詢速度比較快 d1 括號裡面用鍵值對表示 d2 dict d3 dict 1,2 3,4 d4 dict 元素訪問 字典名 key 用鍵來訪問 字典名.get key...

成為程式設計高手的二十二條軍規

1.大學生活豐富多彩,會令你一生都難忘,但難忘有很多種,你可以學了很多東西而難忘,也會因為什麼都沒學到而難忘!2.計算機專業是乙個很枯燥的專業,但即來之 則安之,只要你努力學,也會發現其中的樂趣的。3.記住 萬丈高樓平地起!基礎很重要,尤其是專業基礎課,只有打好基礎才能學得更深。4.c語言是基礎,很...