BST 兩個節點的和

2021-08-17 05:59:29 字數 386 閱讀 4980

給定一棵bst和乙個常數k,判斷bst中是否存在兩個節點的和等於k。

方法一:不使用bst的性質,用乙個列表儲存遍歷過的節點的(k-val)值,如果後面的節點的值等於列表中的值,說明這個節點和前面某個節點的和等於k。

class solution 

}

方法二:利用bst的中序遍歷是有序佇列的性質,把bst的值按順序存到陣列中,然後根據有序陣列的特點進行比較。

public boolean findtarget(treenode root, int k) 

return false;

}public void inorder(treenode root, listnums)

兩兩交換兩個相鄰節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。如 給定1 2 3 4,返回2 1 4 3。說明 方法一 交換兩個節點裡的值而節點不動。該題禁止這樣做 方法二 老老實實的交換就好了 我的 if head null return head if head.next null return h...

求兩個節點的最近公共祖先節點

原文 分三種情況 1 搜尋二叉樹,根據搜尋二叉樹的性質,左子樹的所有節點比根節點小,右子樹的所有節點比跟節點大。如果兩個節點都比根節點小,則遞迴左子樹 如果兩個節點都比跟節點大,則遞迴右子樹 否則,兩個節點乙個在左子樹,乙個在右子樹,則當前節點就是最近公共祖先節點。2 二叉樹有指向父節點的指標。問題...

建立兩個節點的私有鏈

1.啟動第乙個節點a,使用上一節建立私有鏈的方法,在啟動控制台時加入 nodiscover 2.新建另外乙個目錄ethereum2,啟動另外乙個節點b,使用同樣的genesis.json作為創世塊,使用不同的埠,啟動控制台 3.在節點a的控制台輸入admin 在節點b的控制台加入節點a的enode,...