一.演算法描述
給定乙個二叉搜尋樹, 找到該樹中兩個指定節點的最近公共祖先。二.二叉查詢樹:例如,給定如下二叉搜尋樹: 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, 因為根據定義最近公共祖先節點可以為節點本身。
說明:所有節點的值都是唯一的。
p、q 為不同節點且均存在於給定的二叉搜尋樹中。
三.演算法實現
public class mybinarytreetest
@test
public void lowestcommonancestor() else
}system.out.println(result);
}private listgetpath(mybinarytree.treenode root, mybinarytree.treenode target) else if (target.getdata() < curnode.getdata())
}targetparpath.add(curnode);
return targetparpath;
}}
二叉樹最近共同祖先
從鍵盤接收擴充套件先序序列,以二叉鍊錶作為儲存結構,建立二叉樹。求兩個不同結點ch1,ch2的最近共同祖先。第一行 擴充套件先序序列 第二行 ch1,ch2兩個不同結點值,用乙個空格間隔。abc de g f c fb include include include typedef struct n...
二叉樹結點的共同祖先問題
問題描述 假設二叉樹採用二叉鍊錶方式儲存,root指向根結點,p所指結點和q所指結點為二叉樹中的兩個不同結點,且互不成為根到該結點的路徑上的點,程式設計求解距離它們最近的共同祖先。輸入形式 二叉樹的前序和中序遍歷序列,用以建立該二叉樹的鏈式儲存結構 以及二叉樹的兩個結點資料 x 和 y 輸出形式 結...
二叉樹 距離最近的共同祖先
分析總結 問題描述 查詢距離二叉樹中2個結點最近的共同祖先 使用者函式 template class elemtype binarytreenode findnearancient binarytree t,elemtype x,elemtype y 輔助函式 查詢從根結點到元素值為x的結點的路徑 ...