二十 刪除二叉樹結點

2022-07-02 23:57:08 字數 1272 閱讀 4627

原理:

三種型別:

1.刪除的是葉子結點

2.刪除的結點有乙個子節點

3.刪除的結點有兩個子節點

**:public class tree else

}else}}

}}//查詢結點

public node find(int value)

else

if(current == null)

}return current;}/*

* 刪除結點*/

public boolean delete(int value)

else

if(current == null)

}//刪除葉子結點

if(current.leftchild == null && current.rightchild ==null)

else

else

} }else if(current.rightchild == null) //只有左結點

parent.leftchild = current.leftchild;

}else

parent.rightchild =current.leftchild;

}}else if(current.leftchild == null)

else

}else

else if(isleftchild)

else

seccesor.leftchild = current.leftchild;

}return true;

}//尋找中繼結點

public node getsuccessor(node delnode)

/************不解***************/

if(successor != delnode.rightchild)

/***************不解************/

return successor;}/*

* 前序遍歷

* */

public void frontorder(node localnode)

}/*中序遍歷*/

public void inorder(node localnode)

}/*後序遍歷*/

public void lastorder(node localnode)}}

二叉樹刪除結點

二叉樹完成刪除結點的操作.規定 1 如果刪除的節點是葉子節點,則刪除該節點 2 如果刪除的節點是非葉子節點,則刪除該子樹 思路首先先處理 考慮如果樹是空樹root,如果只有乙個root結點,則等價將二叉樹置空 然後進行下面步驟 1.因為我們的二叉樹是單向的,所以我們是判斷當前結點的子結點是否需要刪除...

leetcode 練習 二叉樹刪除結點

delete node in a bst 給定乙個二叉搜尋樹的根節點 root 和乙個值 key,刪除二叉搜尋樹中的 key 對應的節點,並保證二叉搜尋樹的性質不變。返回二叉搜尋樹 有可能被更新 的根節點的引用。一般來說,刪除節點可分為兩個步驟 首先找到需要刪除的節點 如果找到了,刪除它。說明 要求...

二叉樹結點, 排序

二叉樹結點,排序 1.二叉搜尋樹結點最小距離 給定乙個二叉搜尋樹的根結點 root,返回樹中任意兩節點的差的最小值 對這個序列相鄰相減,取最小值即可。實現時,可以優化掉這個序列。在遍歷時記錄上乙個訪問的節點值,和當前節點相減,記錄下最小值即可 定義樹節點 public class treenode ...