二叉搜尋樹中的搜尋
先從上至下找到該節點,再把該節點一層層地傳上來。
classsolution}
二叉搜尋樹的插入操作 題目
解析
遞迴每一層傳是自己。相當於沒有傳遞。可以和上一題的遞迴對比一下。第二個解法相當於第三個解法的簡寫。
classsolution
else
}else
if (temp.val else}}
return
root;
}}
classsolution
}
classsolutionpublic void build(treenode root, intval)
cur =root;
if (root.val >val) build(root.left, val);
if (root.val }
}
二叉搜尋樹的刪除操作 題目
解析
要注意的是刪除時的五種情況,依然是返回每一層的節點。
classsolution
root.left =temp;
return
cur;}}
root.left =deletenode(root.left, key);
root.right =deletenode(root.right, key);
return
root;
}}
將有序陣列轉換成二叉搜尋樹 題目
解析
分治,左閉右閉。(左閉右開也可以)
classsolution
public treenode build(int nums, int l, int
r) }
有序鍊錶轉換二叉搜尋樹
因為鍊錶的特性,用左閉又開會更好
classsolution
public
treenode build(listnode p, listnode q)
public
listnode getmid(listnode p, listnode q)
return
low;
}}
驗證二叉搜尋樹 題目
解析
二叉搜尋樹在中序遍歷時是從小到大排序的。
classsolution}
classsolutionreturn true;
}public voidinorder(treenode root)
}
二叉搜尋樹的最小絕對差 題目
解析
如何保留前乙個節點?
classsolutionprivate voidget(treenode root)
pre =root;
get(root.right);
}}
二叉搜尋樹中的眾樹 題目
解析
難住我的竟是list轉陣列?
classsolutionreturna;
}public voidbst(treenode root)
else count = 1;
pre =root;
if (max ==count)
if (count >max)
bst(root.right);
}}
二叉樹的最近公共祖先 題目
解析解析
底部不是空就是p,q。向上移的過程中如果傳來空就捨棄,將p,q節點的祖先向上傳遞。如果左右節點都不為空,那麼就是公共祖先啦。再往上因為另一邊為空,
所以最近公共祖先一直往上傳,直到頂部。
classsolution}
二叉搜尋樹的最近公共祖先 題目
解析
自上而下,利用二叉搜尋樹的特性。
classsolutionif (root.val < p.val && root.val returnroot;
}}
修剪二叉搜尋樹 題目
解析
改成這樣更容易理解,每一次遞迴(每一層)只需要關注當前的三種選擇。
classsolution
else
if (root.val >high)
else
return
root;
}}
把二叉樹轉換成累加樹 題目
解析
我一開始把cur=root放在最前面了,那是不對的。因為cur應該記錄的是改變後的節點。函式裡面的root怎麼變,如果不返回,只是本次呼叫裡面變化了,外部是沒有變的,要想外部變就必須返回。cur是函式之外的,你可以把它當作是全域性變數。
classsolution
}
演算法與資料結構 其三 棧的實現
上一小節 演算法與資料結構 其n 陣列和鍊錶 的實現 這一小節就講講 棧的實現 什麼是棧 stack 棧就是乙個容器 杯子?碗?隨便你想叫什麼都行 先放進去 push 的資料,就只能放在容器底部,最後放進去的資料,就會在最上面。那我們要獲取資料 pop 就只能從最上面的開始拿出來。如果你只看看,不進...
資料結構之 樹
1.雙親表示法 下標 資料 parentid 2.孩子表示法 data child1 child2 child3 3.雙親孩子表示法 下標 parentid firstchildid secondchildid 節點 下標 next 頁的話next應該是null 4.孩子兄弟表示法 data 第一次...
資料結構之樹
一 樹的基本概念 樹 tree 是元素的集合,樹有多個節點可以儲存元素 二 二叉樹 每個節點最多有兩個子節點的樹稱為二叉樹 常用來做二分查詢 binary search 等 三 b樹 即二叉搜尋樹 binary search tree 是一種特殊形態的二叉樹 1 所有節點最多擁有2個子節點 2 所有...